在nginx中,配置基于端口的虛擬主機(Virtual Host)非常簡單。虛擬主機允許你在同一服務器上托管多個網站或應用程序,每個虛擬主機可以通過不同的端口進行訪問。以下是一個基于端口的虛擬主機配置示例:
假設你有兩個網站,一個在80端口,另一個在8080端口。
安裝nginx: 如果你還沒有安裝nginx,首先需要安裝它。在大多數Linux系統上,可以使用包管理工具安裝nginx,如在Ubuntu上執行以下命令:
sudo apt update
sudo apt install nginx
創建虛擬主機配置文件: 為每個虛擬主機創建一個配置文件。通常,nginx的配置文件位于 /etc/nginx/sites-available/ 目錄。在該目錄下創建兩個配置文件,例如 site1 和 site2。
sudo nano /etc/nginx/sites-available/site1
在 site1 配置文件中,添加以下內容:
server {
listen 80;
server_name yourdomain1.com www.yourdomain1.com;
location / {
root /var/www/site1;
index index.html;
}
}
同樣,創建第二個配置文件 site2:
sudo nano /etc/nginx/sites-available/site2
在 site2 配置文件中,添加以下內容:
server {
listen 8080;
server_name yourdomain2.com www.yourdomain2.com;
location / {
root /var/www/site2;
index index.html;
}
}
這里,listen 指定了不同的端口,server_name 定義了虛擬主機的域名。根據你的需要,你可以在每個虛擬主機配置中定義不同的網站根目錄和其他設置。
創建網站根目錄: 確保為每個虛擬主機創建相應的網站根目錄。在上面的示例中,我們假定網站1的根目錄是 /var/www/site1,網站2的根目錄是 /var/www/site2。你可以使用以下命令創建這些目錄并上傳你的網站文件:
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/
測試nginx配置: 運行以下命令來檢查nginx配置是否正確:
sudo nginx -t
如果沒有錯誤,重新加載nginx以使更改生效:
sudo systemctl reload nginx
現在,你的兩個網站將通過不同的端口進行訪問。例如,http://yourdomain1.com 可以通過80端口訪問,而 http://yourdomain2.com 可以通過8080端口訪問。