nginx配置多个站点

陶潜别梦 陶潜别梦     2022-07-30     244

关键词:

nginx 是一个小巧高效的 web 服务器,由俄罗斯程序员 Igor Sysoev 开发,nginx 虽然体积小,但功能一点也不弱,能和其他的 web 服务器一样支持 virtual hosting,即一个IP对应多个域名以支持多站点访问,就像一个IP对应一个站点一样,所以是”虚拟”的。你想在一个 IP 下面放多少个站点就放多少,只要硬盘够大就行。
这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,

假设:
IP地址: 202.55.1.100
域名1 example1.com 放在 /www/example1
域名2 example2.com 放在 /www/example2

配置 nginx virtual hosting 的基本思路和步骤如下:
把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/
给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf,
并把配置文件放到 /etc/nginx/vhosts/
然后在 /etc/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)
重启 nginx

具体过程 
下面是具体的配置过程:
1、在 /etc/nginx 下创建 vhosts 目录
mkdir /etc/nginx/vhosts

2、在 /etc/nginx/vhosts/ 里创建一个名字为 example1.com.conf 的文件,把以下内容拷进去
server {
        listen  80;
        server_name  example1.com www. example1.com;
        access_log  /www/access_ example1.log  main;
        location / {
            root   /www/example1.com;
            index  index.php index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/example1.com/$fastcgi_script_name;
            include        fastcgi_params;
        }
        location ~ /.ht {
            deny  all;
        }
}

3、在 /etc/nginx/vhosts/ 里创建一个名字为 example2.com.conf 的文件,把以下内容拷进去
server {
        listen  80;
        server_name  example2.com www. example2.com;
        access_log  /www/access_ example1.log  main;
        location / {
            root   /www/example2.com;
            index  index.php index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/example2.com/$fastcgi_script_name;
            include        fastcgi_params;
        }
        location ~ /.ht {
            deny  all;
        }
}

4、打开 /etc/nginix.conf 文件,在相应位置加入 include 把以上2个文件包含进来
user  nginx;
worker_processes  1;
# main server error log
error_log       /var/log/nginx/error.log ;
pid     /var/run/nginx.pid;
events {
        worker_connections  1024;
}
# main server config
http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  ‘$remote_addr - $remote_user [$time_local] $request ‘
                      ‘"$status" $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
        sendfile        on;
        #tcp_nopush     on;
        #keepalive_timeout  0;
        keepalive_timeout  65;
        gzip  on;
        server {
                listen         80;
                server_name     _;
                access_log      /var/log/nginx/access.log main;
                server_name_in_redirect  off;
                location / {
                        root  /usr/share/nginx/html;
                        index index.html;
                }
        }
    # 包含所有的虚拟主机的配置文件
    include /usr/local/etc/nginx/vhosts/*;
}

5、重启 Nginx
/etc/init.d/nginx restart

如果配置文件中的多个站点之一无法解析,nginx 将无法启动。 “在上游找不到主机”

】如果配置文件中的多个站点之一无法解析,nginx将无法启动。“在上游找不到主机”【英文标题】:nginxfailstostartifoneofthemanysitesinitsconfigfilenotresolving."hostnotfoundinupstream"【发布时间】:2021-10-2916:22:52【问题描述】:如果... 查看详情

nginx_include发布多个web站点

...啊:)。放置多个网站或者博客是个不错的想法,可是如何配置web服务器才能在一个VPS上放置多个网站/博客呢?如何通过一个IP访问多个站点/域名呢?这就是大多数web服务器支持的virtualhosting功能。这里将描述如何一步一步如何用n... 查看详情

nginx怎么配置多个web

参考技术A对于配置列表中的web服务站点,nginx是定时检测其可用性的。你说的需要访问多次就能访问到,那只是一个假象。其实是刚好nginx完成了管辖下的站点的检查,将刚重启的tomcat加入到了可用列表中;在你的请求到达时,... 查看详情

由 nginx 服务的 localhost 上的多个站点,没有域名

...进行测试。使用服务器块中的一些服务器块和server_name来配置nginx非常简单,以指向一些不存在的虚拟域,然后将此域设置为指向/ 查看详情

请教nginx多个server怎么配置

参考技术A在/etc/nginx/下建一个文件夹放站点的配置文件,如example地址是:/etc/nginx/example在example文件夹里建多个站点的conf文件,如:example1.conf,example2.conf每个conf配置文件如下,可修改server_name和location地址设置多个站点。serverlisten... 查看详情

nginx虚拟主机的配置

一虚拟主机1.1虚拟主机原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务。1.2配置 1.3通过端口号配置多个虚拟主机1.nginx的配置 2.启动访问   查看详情

通过 Gunicorn/Nginx 使用 Django 的站点框架运行多个站点

】通过Gunicorn/Nginx使用Django的站点框架运行多个站点【英文标题】:RunningMultipleSiteswithDjango\'sSitesFrameworkthroughGunicorn/Nginx【发布时间】:2011-04-1423:46:11【问题描述】:我有一个基于Django的CMS,它使用Django的站点框架和Nginx/Apache/mod_... 查看详情

nginx+tomcat实现单个ip地址,多个二级域名+多个站点访问(代码片段)

...将tomcat压缩包解压到多个目录,然后更改/conf/server.xml配置文件中的三个端口: a.Serverport=”8[X]05″shutdown=”SHUTDOWN” b.Connectorport=”8[X]80″maxHttpHeaderSize=”8192″… c.Connectorport=”8[X]09″enableLookups=”false... 查看详情

NGINX访问多个站点相同的IP url

】NGINX访问多个站点相同的IPurl【英文标题】:NGINXaccessmultiplesitessameIPurl【发布时间】:2019-12-2918:49:05【问题描述】:我想知道如何在Nginx上拥有多个站点并能够使用相同的IP访问每个站点(没有域,因为我在本地实验室进行测试... 查看详情

nginx+tomcat实现单个ip地址,多个二级域名+多个站点访问(代码片段)

...将tomcat压缩包解压到多个目录,然后更改/conf/server.xml配置文件中的三个端口: a.Serverport=”8[X]05″shutdown=”SHUTDOWN” b.Connectorport=”8[X]80″maxHttpHe 查看详情

nginx 和站点上的多个网站可用

】nginx和站点上的多个网站可用【英文标题】:multiplewebsitesonnginx&sites-available【发布时间】:2012-07-2610:43:16【问题描述】:使用nginx的基本安装,您的sites-available文件夹只有一个文件:defaultsites-available文件夹如何工作以及如何... 查看详情

nginx配置多个主机

我现在想配置两个站点,通过域名来区分访问不同的网站目录比如有个域名 baidu.com  第二个域名 google.com,我有两个网站目录,/opt/web/baidu;  /opt/web/google;访问baidu.com的时候访问 地一个目录的网站,google.... 查看详情

Nginx 没有在启用的站点中拾取站点?

...文件夹。它是来自站点可用文件夹的符号链接。使用以下配置时,我使用localh 查看详情

2.配置范例站点站点

配置范例站点站点序号域名目录1www.heytool.com/www/html/www.heytool.com2bbs.heytool.com/www/html/bbs.heytool.com修改nginx配置文件:#vinginx.confusernobodynobody;#运行nginx的所属组和所有者Nginx启动关闭#/usr/local/nginx-1.0.6/sbin/nginx//启 查看详情

通过nginx部署flask项目和静态站点

...志(默认)supervisor查看启动的进程supervisor相关命令一般配置文件在/etc/nginx目录下全局配置文件为nginx.conf,一般需要改的是下面两项,其他的保持默认就好了我们要添加配置只需修改sites-enabled/default或在conf.d/下面添加配置文件即... 查看详情

nginx本地怎么配置多项目的访问

这个是我之前公司里面做多个项目的配置方法你可以看一下,这些都是实际经验这里以配置2个站点(2个域名)为例,n个站点可以相应增加调整,假设:IP地址:202.252.11(IP地址和域名随便编写一个)域名1fengzhongjincao.com放在/www/fengzh... 查看详情

nginx一个server配置多个location404问题解决(代码片段)

配置多个站点404我选择了配置多个location。location/     root /data/html/;     index index.htmlindex.html;    location/publicityroot/u 查看详情

Nginx RegEx 对多个站点进行重写或内部重定向循环

】NginxRegEx对多个站点进行重写或内部重定向循环【英文标题】:NginxRegExtomultiplesitesmakerewriteorinternalredirectioncycle【发布时间】:2018-07-0209:49:06【问题描述】:我正在尝试将我的应用程序从Apache迁移到Nginx。首先,我有mod_rewrite模... 查看详情