Ubuntu Nginx 配置多站點
Ubuntu Nginx 配置多站點
- nginx
- ubuntu
- 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.com
和 domain-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-one
和 domain-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 配置多站點