`
geeksun
  • 浏览: 965261 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx 同一主机部署多个应用

 
阅读更多

近日有一需求,需要在一台主机上用nginx部署2个php应用,分别是wordpress和wiki,探索了半天,终于部署好了,下面把过程记录下来。

1.   在nginx下创建vhosts目录,用以放置vhost文件。

mkdir vhosts

 

2.   修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件

# vhosts files
    include /usr/local/nginx/vhosts/*;

 

3.  在vhosts下创建testwp.com.conf和duwiki.com.conf文件, 注意:这里的配置文件以conf结尾

testwp.com.conf

server{
        listen       80;
        server_name  www.testwp.com;

        location / {
            root   /Users/jiangzhiqiang/phpwork/wordpress;
            index  index.php index.html index.htm;
        }

 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /Users/jiangzhiqiang/phpwork/wordpress;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            # $document_root指前面的root路径
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
            include        fastcgi_params;
        }
    }

 

duwiki.com.conf

server {
        listen  80;
        server_name  www.duwiki.com;

        location / {
            root   /Users/jiangzhiqiang/phpwork/dokuwiki;
            index  index.php index.html index.htm;
        }
        
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
        #  
        location ~ \.php$ {  
            root           /Users/jiangzhiqiang/phpwork/dokuwiki;  
            fastcgi_pass   127.0.0.1:9000;  
            fastcgi_index  index.php;  
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
            include        fastcgi_params;  
        }  
       
        # deny access to files, dokuwiki settings
        location ~ /(data|conf|bin|inc)/
        {
           deny all;
        }
}

 

carbon.conf

 

server {
        listen  80;
        server_name  www.carbon.com;

        location / {
            root   /Users/jiangzhiqiang/phpwork/carbon;
            index  index.php index.html index.htm;
        }

        # nginx configuration
error_page 404 /404.php;
rewrite ^([^\.]*)/dashboard$ $1/dashboard.php;
rewrite ^([^\.]*)/favorites(/page/([0-9]*))?$ $1/favorites.php?page=$3 last;
rewrite ^([^\.]*)/json/([0-9a-z_-]+)$ $1/json.php?action=$2 last;
rewrite ^([^\.]*)/login$ $1/login.php;
rewrite ^([^\.]*)/manage$ $1/manage.php;
rewrite ^([^\.]*)/new$ $1/new.php;
rewrite ^([^\.]*)/notifications$ $1/notifications.php;
rewrite ^([^\.]*)/page/([0-9]+)$ $1/index.php?page=$2 last;
rewrite ^([^\.]*)/register$ $1/register.php;
rewrite ^([^\.]*)/reply$ $1/reply.php;
rewrite ^([^\.]*)/robots.txt$ $1/robots.php;
rewrite ^([^\.]*)/search.xml$ $1/open_search.php;
rewrite ^([^\.]*)/search/(.*?)(/page/([0-9]*))?$ $1/search.php?keyword=$2&page=$4 last;
rewrite ^([^\.]*)/settings$ $1/settings.php;
rewrite ^([^\.]*)/sitemap-(topics|pages|tags|users|index)(-([0-9]+))?.xml$ $1/sitemap.php?action=$2&page=$4 last;
rewrite ^([^\.]*)/statistics$ $1/statistics.php;
rewrite ^([^\.]*)/t/([0-9]+)(-([0-9]*))?$ $1/topic.php?id=$2&page=$4 last;
rewrite ^([^\.]*)/tag/(.*?)(/page/([0-9]*))?$ $1/tag.php?name=$2&page=$4 last;
rewrite ^([^\.]*)/tags/following(/page/([0-9]*))?$ $1/favorite_tags.php?page=$3 last;
rewrite ^([^\.]*)/u/(.*?)$ $1/user.php?username=$2 last;
rewrite ^([^\.]*)/users/following(/page/([0-9]*))?$ $1/favorite_users.php?page=$3 last;
rewrite ^([^\.]*)/upload_controller$ $1/upload_controller.php;
#QSA is automatic in nginx.
rewrite ^([^\.]*)/view-(desktop|mobile)$ $1/view.php?view=$2 last;
        
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
        #  
        location ~ \.php$ {  
            root           /Users/jiangzhiqiang/phpwork/carbon;  

            fastcgi_pass   127.0.0.1:9000;  
            fastcgi_index  index.php;  
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
            include        fastcgi_params; 
        }  
       
        # deny access to files,  settings
        location ~ /(data|conf|bin|inc)/
        {
           deny all;
        }
}

 

 

4.  修改hosts文件

sudo vi /etc/hosts

127.0.0.1    www.testwp.com
127.0.0.1    www.duwiki.com
127.0.0.1    www.carbon.com

 

5.   重启 nginx 

sudo nginx -s reload

 

在浏览器url栏输入 www.testwp.com, 就访问到本地部署的wordpress应用,访问 www.duwiki.com,就访问到本地部署的 dokuwiki 应用。

分享到:
评论

相关推荐

    详解nginx同一端口监听多个域名和同时监听http与https

    首先,关于同一端口监听多个域名。这是一个非常实用的功能,尤其是在公网IP资源稀缺的当下。通过使用Nginx的虚拟主机功能,可以在同一个IP地址和端口上,通过域名区分不同的网站。具体操作方法是在Nginx的配置文件中...

    nginx一个域名多个项目部署.doc

    本篇将详细介绍如何利用Nginx在一个域名下部署多个项目,以实现资源的有效管理和优化。 1. **Nginx基本配置** Nginx的配置主要通过修改`nginx.conf`主配置文件或在该文件中包含各个站点的配置文件来完成。每个...

    Nginx服务器详细部署及部署架构

    例如,创建一个名为 `webname` 的 `upstream` 组,并定义多个后端服务器。 - 对于主备配置,可以在 `upstream` 块中使用 `backup` 关键词标记备用服务器,在正常情况下,请求将只发送到主服务器;一旦主服务器出现...

    Nginx实现多虚拟主机配置.docx

    2. **虚拟主机**:Nginx支持虚拟主机功能,能在同一服务器上创建多个独立域名的网站。 3. **反向代理和负载均衡**:当网站流量增大时,Nginx可用作反向代理,将用户请求分发到多个服务器以实现负载均衡,避免单一...

    nginx+tomcat多域名配置

    - 在Nginx配置文件中,可以通过`server`块来定义不同的虚拟主机,每个虚拟主机对应一个或多个域名。通过`listen`指令指定监听的端口,`server_name`指令设置对应的域名。 3. **Nginx配置示例**: ``` server { ...

    nginx+tomcat集群部署与负载均衡

    为了实现高可用性和负载均衡,可以配置多个Tomcat服务器实例,并使用Nginx将请求分发到这些服务器上。 1. **下载并安装多个Tomcat实例**:按照上述步骤分别下载和安装多个Tomcat实例,确保每个实例的端口号不同。 ...

    在Nginx上配置多个站点的方法

    在互联网应用中,经常需要在同一台服务器上托管多个网站,这就是所谓的虚拟主机或虚拟站点配置。Nginx通过配置文件灵活地支持这一功能,本文将详细介绍如何在Nginx上配置多个站点的方法。 首先,当我们想在同一台...

    Nginx配置多个HTTPS域名的方法

    本文主要讨论如何使用Nginx配置支持多个HTTPS域名的服务器。 首先,要使用Nginx支持多个HTTPS域名,需要确保Nginx编译时包含必要的模块。通常情况下,Nginx需要与OpenSSL库配合使用,并启用SSL模块(--with-...

    nginx部署资料

    - **配置文件结构**:Nginx的主配置文件通常是`nginx.conf`,其中包含多个块级配置,如`http`、`server`和`location`等。 - **基本配置**:包括监听端口、服务器名、日志文件路径、根目录等设置。 - **虚拟主机**...

    nginx基于域名,端口,不同IP的虚拟主机设置的实现

    利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,虚拟主机提供了在同一台服务器,同一组 Nginx进程上运行多个网站的功能。跟Apache一样,Nginx也可以配置多种类型的虚拟...

    在windows中对nginx的安装、配置和使用

    Nginx支持通过虚拟主机来实现多个网站共存于同一台服务器上。例如: ```nginx server { listen 80; server_name www.emb.info; access_log emb.info/logs/access.log; location / { index index.html; ...

    基于域名、端口和IP搭建nginx虚拟主机

    在实际部署环境中,Nginx虚拟主机常用于托管多个网站。管理员可以通过虚拟主机来优化服务器资源分配,提升服务器效率,同时也便于管理和维护。通过配置合适的虚拟主机,可以实现灵活的网站部署策略,满足各种业务...

    nginx-1.17.9_nginx_

    2. **反向代理**:Nginx 可以作为反向代理服务器,将用户的请求转发到后端的多个服务器上,隐藏了后端服务器的真实结构,提高系统的可扩展性和安全性。 3. **负载均衡**:Nginx 提供了多种负载均衡策略,如轮询、...

    深入浅析Nginx虚拟主机

    Nginx 虚拟主机是网络服务器管理中的一个重要概念,它允许在同一台物理服务器上部署和运行多个独立的 Web 站点,每个站点对外表现为一个独立的主机,但它们共享同一硬件资源。这样的设置提高了服务器的利用率,并且...

    nginx-1.8.0安装包

    总结来说,Nginx 的安装涉及到多个库的编译和配置,理解这些库的作用和安装流程,对于管理和维护 Nginx 服务器至关重要。通过正确安装和配置,Nginx 可以为你的网站提供高效、安全的 web 服务。

    linux中安装nginx和keepalived

    通过每个`server`下面的不同`location`来实现同一域名的不同虚拟目录;通过在`http`下配置`upstream`并结合`proxy_pass`来指向后端服务器。 **示例配置:** ```nginx http { include mime.types; default_type ...

    Nginx之配置虚拟主机vhost

    当一台服务器上,需要使用nginx部署多套项目时,将所有项目配置在同一config 下,容易出现混乱,维护起来也比较困难。 部署多项目时,因为每个项目启动都会有不一样的端口号,客户端请求的时候需要带相应端口号,...

    Nginx学习笔记

    对于包含多个SSI的页面,Nginx可以并行处理,显著提高了处理效率。此外,Nginx支持SSL/TLS、SNI(服务器名称指示),增强了安全性。 在配置和管理方面,Nginx表现出色,支持基于域名、端口、IP的多虚拟主机设置,...

    Nginx+PHP+MySQL (Windows版)

    1. **虚拟主机**:Nginx支持虚拟主机配置,允许多个网站在同一服务器上运行。 2. **反向代理**:Nginx可以作为反向代理,将请求转发到内部服务器,提高负载均衡和安全性。 3. **fastcgi_pass**:在Nginx配置中,...

    Nginx+Tomcat高性能负载均衡集群搭建(模板).zip

    1. **多实例部署**: 在不同的服务器或同一服务器的不同端口上部署多个Tomcat实例,确保每个实例都能独立处理请求。 2. **Session复制或共享**: 为了保持用户会话的连续性,需要配置Tomcat进行Session复制或使用共享...

Global site tag (gtag.js) - Google Analytics