nginx配置多个站点

前言

  有时候我们想在一台nginx上配置多个站点,比如我们将 www.webA.com 以及 www.webB.com 同时部署到一台nginx上,但是我们不能在nginx目录里同时运行两个不同的站点。此时,我们可以利用虚拟目录,比如,我们将站点A放在 /usr/local/nginx/web/demo1下,将站点B放在 /usr/local/nginx/web/demo2 下。

具体配置过程如下:

我们的nginx 配置文件在 /etc/nginx下,我们在 /etc/nginx 下新建一个 vhost 文件夹,此文件夹我们用来放置站点的配置文件。

创建 vhost 目录 

# 1. 新建vhost文件夹
mkdir /etc/nginx/vhost
 
# 2. 进入到vhost目录
cd vhost

 

创建两个配置文件

nginxdemo1.conf

server {
    listen 80;
    server_name www.demo1.com demo1.com;
    location / {
        root /usr/local/nginx/web/demo1;
        index demo1.htm demo1.html;
    }
    error_page 500 502 503 504 / 50x.html;
    location = /50x.html {
            root   html;
        }
}

 

 nginxdemo2.conf
server {
    listen 80;
    server_name www.demo2.com demo2.com;
    location / {
        root /usr/local/nginx/web/demo2;
        index demo2.htm demo2.html;
    }
    error_page 500 502 503 504 / 50x.html;
    location = /50x.html {
            root   html;
        }
}

 

配置nginx主配置文件

# nginx配置文件在 /etc/nginx/nginx.conf中
vim  /etc/nginx/nginx.conf
在 nginx 配置文件 http 块中,加入红色标注那行代码
#user  nobody;
user  root;
worker_processes  3;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  65535;
}


http {
    client_max_body_size 10M;
    server_names_hash_bucket_size 128;

    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"';

    access_log  logs/access.log  main;
    error_log  logs/error.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    fastcgi_intercept_errors on;
    error_page  404 /error/404.html;
   
    # 此处增加该配置即可
    include vhost/*.conf;
}

 

检查配置是否正确并重启 nginx

# 检查nginx配置文件是否正确
nginx -t
# 此方式是优雅的重启
nginx nginx -s reload
 

输入站点A和B进行查看效果

 

test页面

demo1站点页面

<!DOCTYPE>
<html lang="zh-CN">
    <head></head>
    <body>
        demo1
    </body>
</html>

 

demo2站点页面

<!DOCTYPE>
<html lang="zh-CN">
    <head></head>
    <body>
        demo2
    </body>
</html>

 

posted @ 2021-06-03 16:26  阿科。  阅读(1931)  评论(0编辑  收藏  举报