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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM