Ubuntu Nginx 配置多站點

原文來自:Ubuntu Nginx 配置多站點

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

1. 安裝 Nginx

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

sudo apt-get install nginxn

2.創建新的文件路徑

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

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

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

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

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

3.創建不同的入口文件

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

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

然後添加下面的內容:

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

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

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

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

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

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

4.創建不同的配置文件

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

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

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

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

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

server {n listen 80;n listen [::]:80;nn root /var/www/domain-one.com/html;n index index.html index.htm index.nginx-debian.html;nn server_name domain-one.com www.domain-one.com;nn location / {n try_files $uri $uri/ =404;n }n}n

這樣就配置完 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.comn

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

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

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

server {n listen 80;n listen [::]:80;nn root /var/www/domain-two.com/html;n index index.html index.htm index.nginx-debian.html;nn server_name domain-two.com www.domain-two.com;nn location / {n try_files $uri $uri/ =404;n }n}n

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

sudo rm etc/nginx/sites-available/defaultn

注意這裡是要刪除的!

5.建立軟鏈接

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

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

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

sudo nginx -tn

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

sudo service nginx restartn

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

關注 codecasts 微信公眾號,雙十一有大福利!!!

推薦閱讀:

如何看待Zealer網站被惡意刷分時候,Zealer的聲明?
【網站推薦】看看你的賬號註冊過哪些網站?
有了一個自己的域名後 都還可以幹些啥?
暴利·神秘·危險:如何給「麗春院」做銀行服務?
建立一個網站的話,排除技術方面的因素,從申請域名開始,流程具體是什麼樣的,另外身為一個站長,需要具備哪方面的能力素養?

TAG:Nginx | Ubuntu | 网站 |