在nginx中虛拟主機配置有多種方法:可以直接在主配置檔案(nginx.conf)中增加,也可以将所有的虛拟主機單獨寫一個檔案然後在主配置段中包含進去(include 檔案名),最後一種方法是每個虛拟主機都為一個單獨的配置檔案。本篇以第三種方法來做示範
首先確定nginx已經安裝完成接下來建立虛拟主機的配置檔案及虛拟主機檔案所在的目錄(我的安裝路徑在/usr/local/nginx)
cd /usr/local/nginx/conf #切換到配置檔案目錄 mkdir vhosts #建立虛拟主機配置檔案所在的目錄 touch vhosts/vhost1.conf #建立第一個虛拟主機的配置檔案 |
在此檔案中加入如下行:
server { listen 80; # 設定監聽端口; server_name www.test.com; # 設定主機名; location / { # 定義網站跟目錄; root /web/vhost/test1; # 此目錄如果不存在則需建立 index index.html; # 此檔案也需要事先建立 } error_page 500 502 503 504 /usr/local/nginx/html/50x.html; # 定義頁面狀态碼為5XX系列的錯誤頁面 access_log /web/vhost/test1/logs/test1.access.log; # 設定通路日志路徑 error_log /web/vhost/test1/logs/logs/test1.error.log crit; # 設定錯誤日志路徑 } |
如果有關上方的目錄及檔案不存在則按照一下方法建立
mkdir /web/vhost/test/logs -p touch /web/vhost/test/index.html 編輯index.html檔案随便添加内容然後儲存退出即可 |
這時虛拟主機的配置檔案已經搞定,但是重新開機nginx服務是不會生效的因為并沒有包含進去,打開nginx.conf檔案将其添加至http{}段的最後一行,一定要在http段中。

由于是測試使用是以打開浏覽器可能也不會通路到,這時可以修改本機的hosts檔案添加如下内容:
IP(web server 的伺服器ip位址) hostname(就是我們定義的server_name)
全部設定完成後就可以重新開機nginx伺服器了,如果沒有添加服務啟動腳本的話可以使用nginx -s quit && nginx啟動(如果沒有将nginx的sbin目錄加入到環境變量中就需要使用絕對路徑來啟動它/usr/local/nginx/sbin/nginx -s quit && /usr/local/nginx/sbin/nginx)
檢視下通路結果
接下來為此虛拟主機開啟狀态監控功能,在虛拟主機的配置檔案中加入一下内容
location /status{ stub_status on; #啟動狀态功能 access_log off; #關閉通路日志 |
使用nginx -t 來檢查配置檔案是否正常,如果出現一下内容表示配置檔案正常,可以重新開機nginx服務
然後在浏覽器中輸入www.test.com/status 檢視狀态頁面是否顯示
活躍連接配接數2個,接受5個請求 處理5個請求 響應64個(我一直在重新整理。。) 讀0個 寫1個 等待1個
一般這些狀态頁面是不允許未經授權的使用者通路的,是以我們需要設定一下使用者認證,在虛拟主機的狀态頁面中添加如下内容:
auth_basic "admin"; auth_basic_user_file /web/vhost/test1/.passwd; |
接下來在/web/vhost/test1/目錄下生成.passwd檔案生成方法有以下兩種
A.使用htpasswd工具直接生成
htpasswd -c -m /web/vhost/test1/.passwd # htpasswd 為httpd的工具如果無法使用請安裝yun imstall httpd-tools |
B.使用openssl 加密後手動建立檔案并添加
openssl passwd -apr1 -salt `echo $RANDOM` touch /web/vhost/test1/.passwd |
此檔案的格式為:
使用者名:密碼 |