1. 程式人生 > >Ubuntu Nginx 配置多站點

Ubuntu Nginx 配置多站點

自己的 來安 針對 域名 ogg borde regex article 自己

Ubuntu Nginx 配置多站點

  • nginx
  • 技術分享圖片 ubuntu
JellyBool 2017年11月04日發布
  • 291 次瀏覽

原文來自: https://www.codecasts.com/blo...

在維護 codecasts 期間,遇到很多次“一個 nginx 如何配置多個站點” 的問題,我通常的回復就是:多添加一個 server 的 block 配置就好了,然而很多同學還是沒能配置成功,今天我們仔細來看看在 一臺 Ubuntu 的服務器中,如何在 nginx 在配置多個站點。

1. 安裝 Nginx

在 Ubuntu 中,你可以直接通過 apt-get 命令來安裝 Nginx:

sudo apt-get install nginx

2.創建新的文件路徑

在安裝完新的 Nginx 之後,針對多個站點的配置,其實我們可以設置不同的 root 來返回不同的內容:

sudo mkdir -p /var/www/domain-one.com/html
sudo mkdir -p /var/www/domain-two.com/html

以上的命令就會創建兩個對應的目錄:主要將 domain-one.comdomain-two.com 換成你自己的域名。然後再將這兩個文件夾給定權限和所有權:

sudo chown -R www-data:www-data /var/www/domain-one.com/html
sudo chown -R www-data:www-data /var/www/domain-two.com/html

上面的 www-data:www-data 就是 Nginx 默認的用戶組合用戶名。

3.創建不同的入口文件

在這裏為了演示方便,我們可以直接在第二步的兩個目錄中分別創建 index.html 文件:

sudo vim /var/www/domain-one.com/html/index.html

然後添加下面的內容:

<html>
    <head>
        <title>Welcome to Domain-one.com!</title>
    </head>
    <body>
        <h1>Success!  The Domain-one.com server block is working!</h1>
    </body>
</html>

對應的 domain-two.com 我們可以這樣:

sudo vim /var/www/domain-two.com/html/index.html

在 domain-two.com 這裏添加下面的內容:

<html>
    <head>
        <title>Welcome to Domain-two.com!</title>
    </head>
    <body>
        <h1>Success!  The Domain-two.com server block is working!</h1>
    </body>
</html>

主要上面的內容主要是用 domain-onedomain-two 來區分,在你照著文章實踐的時候,記得替換成你自己的域名,如何你僅僅是學習目的的話: 推薦你去買騰訊雲的香港主機(香港主機不用備案),趁著雙十一活動便宜!

4.創建不同的配置文件

在安裝完 Nginx 之後,其實 Nginx 的默認配置文件實在 /etc/nginx/sites-available/default 的,但是我們要配置多站點的話,可以這樣:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain-one.com

然後編輯 /etc/nginx/sites-available/domain-one.com 配置文件:

sudo vi /etc/nginx/sites-available/domain-one.com

刪除原來所有的配置內容,添加下面的配置:

server {
        listen 80;
        listen [::]:80;

        root /var/www/domain-one.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name domain-one.com www.domain-one.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

這樣就配置完 domain-one.com 了,如果你需要配置 SSL 的話,一樣是在 /etc/nginx/sites-available/domain-one.com 這個文件配置就好。接下來就照葫蘆畫瓢,我們創建 domain-two.com 的配置文件:

sudo cp /etc/nginx/sites-available/domain-one.com /etc/nginx/sites-available/domain-two.com

以上命令就會復制出 domain-two.com 的配置文件,然後編輯該文件:

sudo vi /etc/nginx/sites-available/domain-two.com

主要在這個文件裏面主要是將 domain-one.com 改為 domain-two.com; 然後,root 也註意一下:

server {
        listen 80;
        listen [::]:80;

        root /var/www/domain-two.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name domain-two.com www.domain-two.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

這樣我們的兩個域名配置文件就設置好了,最後我們需要將原來 Nginx 的 default 配置刪除:

sudo rm etc/nginx/sites-available/default

註意這裏是要刪除的!

5.建立軟鏈接

有了 domain-one.com 和 domain-two.com 的配置之後,我們需要把這兩個配置告知 Nginx :

sudo ln -s /etc/nginx/sites-available/domain-one.com /etc/nginx/sites-enabled/

sudo ln -s /etc/nginx/sites-available/domain-two.com /etc/nginx/sites-enabled/

執行上面的命令之後,我們再使用 nginx -t 檢測 Nginx 的配置文件是否有錯:

sudo nginx -t

如果你沒有看到報錯,就可以直接重啟 Nginx 服務了:

sudo service nginx restart

這樣就大功告成啦!訪問你的域名試試!!!

Ubuntu Nginx 配置多站點