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.com
和 domain-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
對應的 http://domain-two.com 我們可以這樣:
sudo vim /var/www/domain-two.com/html/index.htmln
在 http://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-one
和 domain-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
以上命令就會複製出 http://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.建立軟鏈接
有了 http://domain-one.com 和 http://domain-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的聲明?
※【網站推薦】看看你的賬號註冊過哪些網站?
※有了一個自己的域名後 都還可以幹些啥?
※暴利·神秘·危險:如何給「麗春院」做銀行服務?
※建立一個網站的話,排除技術方面的因素,從申請域名開始,流程具體是什麼樣的,另外身為一個站長,需要具備哪方面的能力素養?