什么是 Nginx 虛擬主機(jī)? 通俗來(lái)說(shuō),虛擬主機(jī)是一種技術(shù),它允許你通過(guò)一臺(tái)服務(wù)器(以及對(duì)應(yīng)的 Nginx 實(shí)例),托管多個(gè)網(wǎng)站。Nginx 通過(guò) Server Block 來(lái)實(shí)現(xiàn)這一功能。每個(gè) Server Block 定義了一個(gè)獨(dú)立的網(wǎng)站配置,比如域名、根目錄、日志路徑等。
配置虛擬主機(jī)的步驟 1.創(chuàng)建網(wǎng)站目錄結(jié)構(gòu)
為每個(gè)虛擬主機(jī)創(chuàng)建獨(dú)立的目錄,用于存放網(wǎng)站文件。假設(shè)需要配置兩個(gè)網(wǎng)站 example1.com
和 example2.com
,運(yùn)行以下命令:
sudo mkdir -p /var/www/example1.com sudo mkdir -p /var/www/example2.com
將簡(jiǎn)單的測(cè)試頁(yè)面添加到目錄中:
sudo sh -c 'echo "Welcome to example1.com!" > /var/www/example1.com/index.html' sudo sh -c 'echo "Welcome to example2.com!" > /var/www/example2.com/index.html'
2.編輯虛擬主機(jī)配置文件
在 /etc/nginx/sites-available/
目錄下,為每個(gè)網(wǎng)站創(chuàng)建配置文件。例如,為 example1.com
創(chuàng)建 example1.conf
:
sudo vim /etc/nginx/sites-available/example1.conf
在配置文件中填寫以下內(nèi)容:
server { listen 80; server_name example1.com www.example1.com; root /var/www/example1.com; access_log /var/log/nginx/example1-access.log; error_log /var/log/nginx/example1-error.log; location / { index index.html; } }
為 example2.com
創(chuàng)建類似的文件 example2.conf
,更改對(duì)應(yīng)的域名和根目錄。
3.啟用虛擬主機(jī)配置
Nginx 的虛擬主機(jī)配置需要從 sites-available
鏈接到 sites-enabled
目錄。執(zhí)行以下命令:
sudo ln -s /etc/nginx/sites-available/example1.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/example2.conf /etc/nginx/sites-enabled/
測(cè)試配置語(yǔ)法是否正確:
sudo nginx -t
如果輸出 syntax is ok
,說(shuō)明配置無(wú)誤。
4.重啟 Nginx
最后,重新加載 Nginx 配置,讓修改生效:
sudo systemctl restart nginx
5.測(cè)試虛擬主機(jī)
在瀏覽器中訪問(wèn) example1.com
和 example2.com
,你應(yīng)該能看到兩個(gè)獨(dú)立網(wǎng)站的測(cè)試頁(yè)面。如果本地測(cè)試,可以將域名添加到 /etc/hosts
:
127.0.0.1 example1.com 127.0.0.1 example2.com
保存后,用瀏覽器訪問(wèn) http://example1.com
。
?
虛擬主機(jī)是 Nginx 的核心功能之一。學(xué)會(huì)通過(guò)簡(jiǎn)單的配置文件快速部署多個(gè)網(wǎng)站,不僅可以提高運(yùn)維效率,還能幫助你構(gòu)建強(qiáng)大的負(fù)載均衡和反向代理解決方案。掌握這項(xiàng)技能后,你將在運(yùn)維路上更進(jìn)一步。
該文章在 2025/7/30 9:30:58 編輯過(guò)