基於 LNMP 的 Nginx 百萬併發之路 (三)基於域名的虛擬主機

cn-five發表於2020-09-11

Nginx 虛擬主機分為基於網路卡或者 ip、或基於埠和基於域名三大類。其中 基於網路卡或ip和基於埠 私人應用場合較多,多用於測試,基於域名則是實際應用場合中的主要形式,一般一臺伺服器維持一個域名。如果網站訪問量小,一臺伺服器可以部署數個網站。如何搭建 LNMP 平臺可參考 Wiki PHP 環境安裝:Linux 開發環境
建議在 Nginx 安裝目錄下建立 conf.d 目錄,以便於基於不同目的的虛擬主機配置檔案的匯入。

cache_temp
client_body_temp
conf
conf.d
core
fastcgi_temp
html
logs
pid
proxy_temp
sbin
scgi_temp
uwsgi_temp

本機的 Nginx 版本為

nginx version: nginx/1.18.0

修改 nginx.conf 檔案,在 http 段新增

include /opt/nginx/conf.d/*.conf;

進入 conf.d 目錄,編輯 domain_based.conf 檔案

server {
    listen 80;
    server_name test.nginx1.my;

    location / {
    root /home/html/nginx1;
    index nginx1.html;
    }
}


server {
    listen 80;
    server_name test.nginx2.my;

    location / {
    root /home/html/nginx2;
    index nginx2.html;
    }
}

響應的建立相應目錄和檔案,如下

mkdir -p /home/html/nginx1 /home/html/nginx2
echo "<h1> test.nginx1.my<h1>" > /home/html/nginx1/nginx1.html
echo "<h1> test.nginx2.my<h1>" > /home/html/nginx2/nginx2.html

開啟 Nginx,關閉防火牆。

nginx # vim /etc/profile 設定 export PATH="/opt/nginx/sbin:$PATH"
systemctl stop firewalld

也可以將 80 埠永久放行

firewall-cmd --zone=public --add-port=80/tcp --permanent

臨時性關閉 Selinux,再次開機後無效。

setenforce 0

永久性關閉 Selinux,但存在系統安全風險。

vim /etc/selinux/config
SELINUX=disabled

不要忘了在你的物理機新增主機名,windows 環境下 hosts 檔案所在路徑為

C:\Windows\System32\drivers\etc

訪問 test.nginx1.my

訪問 test.nginx2.my

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章