最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于紅帽redhat環(huán)境下配置Nginx Web服務(wù)器

 更新時間:2026年04月01日 10:00:45   作者:tangyal  
本文詳細(xì)介紹了在RedHat10系統(tǒng)上使用Nginx搭建基于不同IP、端口和主機(jī)名的Web服務(wù)器,并配置基于HTTPS的加密站點(diǎn),具有一定的參考價值,感興趣的可以了解一下

一、基于不同IP搭建Web服務(wù)器

(一)實(shí)驗(yàn)?zāi)繕?biāo)

在 Red Hat 10 系統(tǒng)上安裝 Nginx,并配置兩個基于不同 IP 地址的虛擬主機(jī)(Virtual Host),實(shí)現(xiàn)通過不同 IP 訪問不同的網(wǎng)頁內(nèi)容。

(二)詳細(xì)操作步驟

第一步:安裝 Nginx

  1. 使用 dnf 包管理器安裝 Nginx。

    dnf install nginx -y

    注意:截圖顯示安裝過程中提示“無法讀取客戶身份”及“未在權(quán)利服務(wù)器中注冊”,這屬于訂閱管理提示,不影響 Nginx 軟件包的正常安裝。

  2. 啟動并設(shè)置 Nginx 開機(jī)自啟。

    systemctl restart nginx
    systemctl enable nginx

驗(yàn)證:使用 systemctl status nginx 查看服務(wù)狀態(tài),確保顯示 active (running)。

第二步:創(chuàng)建網(wǎng)頁目錄結(jié)構(gòu)

為了區(qū)分不同的虛擬主機(jī),我們需要創(chuàng)建獨(dú)立的目錄和測試頁面。

1、創(chuàng)建主目錄

/www 下創(chuàng)建 testexam 目錄。

mkdir -p /www/{test,exam}

創(chuàng)建主目錄

2、設(shè)置 SELinux 上下文(關(guān)鍵步驟)

由于 RHEL 默認(rèn)開啟 SELinux,直接在根目錄 / 下創(chuàng)建的目錄可能無法被 Nginx 讀取。需要修改安全上下文

semanage fcontext -a -t httpd_sys_content_t "/www(/.*)?"
restorecon -R /www

解釋:將 /www 及其子目錄的類型標(biāo)記為httpd_sys_content_t,允許 Web 服務(wù)訪問。

3、創(chuàng)建測試頁面

echo "hello,130" > /www/test/index.html
echo "hello,131" > /www/exam/index.html

創(chuàng)建測試頁面

第三步:配置網(wǎng)絡(luò) IP 地址

本實(shí)驗(yàn)采用“基于 IP 的虛擬主機(jī)”,因此需要為網(wǎng)卡配置多個 IP 地址(IP 別名)。

1、查看當(dāng)前 IP

使用 ip a 查看網(wǎng)卡名稱(截圖中為 ens160

2、臨時添加 IP 地址

nmcli connection modify ens160 +ipv4.addresses 172.25.2.130/24
nmcli connection modify ens160 +ipv4.addresses 172.25.2.131/24
nmcli connection up ens160

效果:此時 ens160 網(wǎng)卡將同時擁有 130 和 131 兩個 IP。

第四步:配置防火墻

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

第五步:配置 Nginx 虛擬主機(jī)

將配置文件存放在 /etc/nginx/conf.d/ 目錄下。

1、編輯配置文件

vim /etc/nginx/conf.d/ip.conf

2、配置代碼

將以下代碼復(fù)制到 ip.conf 文件中:

server {
    listen 172.25.2.130:80;
    server_name _;
?
location / {
    root /www/test;
    index index.html;
}
?
}
?
server {
    listen 172.25.2.131:80;
    server_name _;
?
location / {
    root /www/exam;
    index index.html;
}
?
}

參數(shù)解釋

  • listen:指定該虛擬主機(jī)監(jiān)聽的 IP 和端口。
  • root:指定該 IP 對應(yīng)的網(wǎng)站根目錄。
  • server_name _;:表示匹配任意主機(jī)名。

3、重啟 Nginx 使配置生效

systemctl restart nginx

(三)驗(yàn)證測試

配置完成后,通過 curl 命令或?yàn)g覽器進(jìn)行訪問測試。

訪問 IP 130

  • 命令curl http://172.25.2.130
  • 輸出hello,130

訪問 IP 131

  • 命令curl http://172.25.2.131
  • 輸出hello,131

(四)故障排查提示

如果訪問失敗,請檢查以下幾點(diǎn):

  • SELinux 權(quán)限:確保 /www 目錄的 SELinux 上下文正確(使用 ls -Zd /www 查看)。
  • 防火墻:確保防火墻已放行 80 端口。
  • 配置語法:運(yùn)行 nginx -t 檢查配置文件是否有語法錯誤。
  • 服務(wù)狀態(tài):確保 systemctl status nginx 顯示為 running。

二、基于不同端口的Web服務(wù)器搭建

(一)實(shí)驗(yàn)?zāi)繕?biāo)及意義

目標(biāo):在 Red Hat 10 系統(tǒng)上,利用已安裝的 Nginx 服務(wù),配置兩個基于不同端口的虛擬主機(jī)。實(shí)現(xiàn)通過訪問 IP:9091IP:9092 訪問不同的網(wǎng)頁內(nèi)容。

意義:在生產(chǎn)環(huán)境中,有時無法為服務(wù)器分配多個 IP 地址,或者希望在同一 IP 上托管多個獨(dú)立的 Web 服務(wù)。此時,基于端口的虛擬主機(jī)(Port-Based Virtual Host)是最佳解決方案。

(二)詳細(xì)操作步驟

第一步

參照 一、(二)詳細(xì)操作步驟 的前兩步操作(一模一樣)

第二步:配置防火墻(開放指定端口)

Nginx 默認(rèn)只開放 80 端口,我們需要手動放行 9091 和 9092 端口。

firewall-cmd --permanent --add-port=9091/tcp
firewall-cmd --permanent --add-port=9092/tcp

重載防火墻

firewall-cmd --reload

驗(yàn)證:確保命令返回 success

第三步:Nginx虛擬主機(jī)

創(chuàng)建一個新的配置文件,或者修改原有的配置文件(建議新建以避免沖突)。

1、編輯配置文件

vim /etc/nginx/conf.d/port.conf

2、寫入配置代碼

將以下代碼復(fù)制到文件port.conf中。注意 listen 指令后的端口號變化,以及 root 路徑的對應(yīng)關(guān)系。

server {
    listen 9091; # 監(jiān)聽本機(jī)所有 IP 的 9091 端口
    server_name _; # 匹配任意域名
    location / {
        root /www/test; # 對應(yīng) test 目錄
        index index.html;
    }
}
?
server {
    listen 9092; # 監(jiān)聽本機(jī)所有 IP 的 9092 端口
    server_name _; # 匹配任意域名
    location / {
        root /www/exam; # 對應(yīng) exam 目錄
        index index.html;
    }
}

?? 參數(shù)解析

  • listen 9091:不再指定具體 IP,意味著服務(wù)器的所有 IP 地址(如 172.25.2.130)都可以通過 :9091 訪問此服務(wù)。
  • root:復(fù)用了上一實(shí)驗(yàn)的目錄結(jié)構(gòu),確保數(shù)據(jù)一致性。

3、重啟 Nginx 服務(wù)

systemctl restart nginx

(三)驗(yàn)證測試

配置完成后,使用 curl 命令進(jìn)行本地或遠(yuǎn)程測試。

訪問端口 9091

  • 命令curl http://127.0.0.1:9091
  • 預(yù)期輸出hello,130

訪問端口 9092

  • 命令curl http://127.0.0.1:9092
  • 預(yù)期輸出hello,131

(四)可能有困惑之處-詳解

1、配置server_name _;的原因

在基于端口的配置中,Nginx 依靠 listen 指令后的端口號(如 9091)來區(qū)分不同的網(wǎng)站。server_name _; 是一個通配符,表示“匹配任意域名”。如果寫死域名或 IP,當(dāng)客戶端通過 IP:端口 訪問時,HTTP 請求頭中的 Host 字段(如 127.0.0.1:9091)可能無法匹配,導(dǎo)致 Nginx 返回默認(rèn)頁面或 404。使用 _ 確保了只要端口對,就能命中配置。

2、防火墻配置的必要性

Linux 的 firewalld 默認(rèn)只放行常用端口(如 80、443)。自定義端口(9091/9092)必須手動添加規(guī)則,否則外部網(wǎng)絡(luò)包無法進(jìn)入服務(wù)器。

(五)所遇故障及排查思路

1、遇到的報錯

遇到的報錯

日志中出現(xiàn)了關(guān)鍵錯誤信息:

nginx: [emerg] bind() to 0.0.0.0:9091 failed (13: Permission denied)

解讀:Nginx 進(jìn)程沒有權(quán)限綁定到 9091 和 9092 端口。這通常不是文件權(quán)限問題,而是 SELinux(Security-Enhanced Linux) 在作祟。SELinux 有一套預(yù)定義的端口策略,Nginx 默認(rèn)只被允許監(jiān)聽 80、443 等標(biāo)準(zhǔn)端口,非標(biāo)準(zhǔn)端口會被攔截。

2、解決步驟

①查看防火墻配置(放行的端口是否正確)

[root@localhost conf.d]# firewall-cmd --list-ports

若出現(xiàn)9091/tcp 9092/tcp,則證明無誤;

若沒出現(xiàn),就重新配置,如下命令。

防火墻放行端口(這一步是必要的,但不是導(dǎo)致 Permission denied 的原因)

firewall-cmd --permanent --add-port=9091/tcp
firewall-cmd --permanent --add-port=9092/tcp
firewall-cmd --reload

重啟服務(wù)(依然失敗,大概率推斷是 SELinux 問題)

systemctl restart nginx

①查看防火墻配置(放行的端口是否正確)

上述確認(rèn)無誤但還是不能啟動,進(jìn)一步如下操作:

②檢查端口是否被其他進(jìn)程占用

netstat -tuln | grep 9091
netstat -tuln | grep 9092

②檢查端口是否被其他進(jìn)程占用

假設(shè)被占用了,你看到類似這樣的輸出: tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN 0 12345 1234/java

最后一列 1234/java 表示:PID 為 1234 的 java 程序正在占用 9091 端口。

殺掉進(jìn)程(以 PID 1234 為例)

   kill -9 1234

重新檢查端口,確認(rèn)已釋放

   netstat -tuln | grep 9091

(此時應(yīng)該沒有輸出,表示端口空閑)

沒被占用,且還不能正常啟動nginx,繼續(xù)下一步操作:

③ SELinux 排錯

解決方案:臨時禁用 SELinux 進(jìn)行驗(yàn)證

臨時將 SELinux 設(shè)置為寬容模式(Permissive)

setenforce 0

再次檢查配置語法

nginx -t

輸出:syntax is ok (此時語法檢查通過,且不再報 Permission denied)

systemctl restart nginx

再次重新啟動nginx

③ SELinux 排錯

最終建議: 為了系統(tǒng)安全,建議在實(shí)驗(yàn)結(jié)束后,重新開啟 SELinux 并通過策略模塊放行端口,而不是保持 setenforce 0 的狀態(tài)。

3、最終解決故障,成功排錯并解決!

三、基于不同主機(jī)名的Web服務(wù)器搭建

(一)實(shí)驗(yàn)?zāi)繕?biāo)

配置兩個基于域名的虛擬主機(jī) (www.test.comwww.exam.com),并實(shí)現(xiàn)正常訪問。

(二)詳細(xì)操作步驟

第一步:準(zhǔn)備網(wǎng)站根目錄與測試頁面

1、創(chuàng)建網(wǎng)站根目錄

mkdir -p /www/test /www/exam

2、編寫測試頁面文件

/www/test/index.html 內(nèi)容為 hello,130

/www/exam/index.html 內(nèi)容為 hello,131

這里我直接用的上述實(shí)驗(yàn)的目錄文件了,就沒有重復(fù)操作,這里就不放實(shí)驗(yàn)圖片啦 > . <

3、本地解析

修改 /etc/hosts 文件,添加域名映射(指向本機(jī)或指定 IP),以便在沒有 DNS 服務(wù)器的情況下進(jìn)行測試。

vim /etc/hosts

第二步:編寫 Nginx 虛擬主機(jī)配置

1、進(jìn)入配置目錄

cd /etc/nginx/conf.d/

2、創(chuàng)建配置文件

[root@localhost conf.d]# vim hostname.conf
[root@localhost conf.d]# cat hostname.conf
server {
    listen 9091; 
    server_name www.test.com;
    location / {
        root /www/test;
        index index.html;
    }
}
?
server {
    listen 9092;
    server_name www.exam.com;
    location / {
        root /www/exam;
        index index.html;
    }
}

第三步:重啟Nginx服務(wù)

# 放行 SELinux 策略(解決 9091/9092 權(quán)限問題)
[root@localhost conf.d]# semanage port -a -t http_port_t -p tcp 9091
[root@localhost conf.d]# semanage port -a -t http_port_t -p tcp 9092
?
[root@localhost conf.d]# systemctl restart nginx.service

(三)驗(yàn)證測試

[root@localhost conf.d]# curl http://www.test.com
hello,130
[root@localhost conf.d]# curl http://www.exam.com
hello,131

(四)所遇故障及排查思路

1、遇到的故障

2、解決方法1(使用9091、9092端口)

解決方法1(使用9091、9092端口)

nginx: [emerg] bind() to 0.0.0.0:9091 failed (13: Permission denied)

解讀:Nginx 想要綁定(監(jiān)聽)9091 端口,但是系統(tǒng)拒絕了。

原因:這是 SELinux 在搞鬼,9091 端口被 SELinux 攔截(CentOS/RHEL 的安全機(jī)制,默認(rèn)不允許 Nginx 用 80 以外的端口)。

解決

①將配置文件的80端口改為9091和9092

②通過命令放行SELinux策略

# 安裝 semanage 工具(如果沒安裝)
yum install policycoreutils-python-utils -y
?
# 告訴 SELinux 允許 9091和9092
semanage port -a -t http_port_t -p tcp 9091
semanage port -a -t http_port_t -p tcp 9092

提示:如果還是不行也檢查一下9091和9092是否被其他進(jìn)程監(jiān)聽占用,如下圖。

正是因?yàn)槲野l(fā)現(xiàn)9091和9092比80(如解決方法2中圖)被進(jìn)程監(jiān)聽占用得少(就可以少備份一份文件),所以上述正常詳細(xì)操作步驟中我選擇的是用9091和9092端口,而不是80端口。

3、解決方法2(仍使用80端口)

①首先排查80端口是否被其他進(jìn)程監(jiān)聽占用

grep -r "listen.*80" /etc/nginx/

①首先排查80端口是否被其他進(jìn)程監(jiān)聽占用

輸出分析

  • ip.conf: listen 172.25.2.130:80; (它已經(jīng)在用 80 了)
  • ip.conf: listen 172.25.2.131:80; (它還在用 80)
  • hostname.conf: listen 80; (你又申請用一次 0.0.0.0:80)

結(jié)論:出現(xiàn)了nginx配置沖突,80端口ip.conf在使用了,hostname也想使用,導(dǎo)致沖突。這就像是兩個人都想坐同一把椅子(80號椅子),肯定會打架。

②備份干擾文件并移除(ip.conf)

mv /etc/nginx/conf.d/ip.conf /etc/nginx/conf.d/ip.conf.bak

4、成功解決

無論上述哪一種方法都能有效解決這個報錯問題,最后重啟nginx服務(wù)就沒問題了!

(五) 實(shí)驗(yàn)總結(jié)與關(guān)鍵知識點(diǎn)

1、Nginx 啟動失敗排查三部曲

  • systemctl status nginx (看狀態(tài))
  • journalctl -xeu nginx.service (看具體報錯原因,如 Permission denied)
  • grep "listen" /etc/nginx/* (看哪里占用了端口)

2、SELinux 的重要性

  • 當(dāng)你確信端口未被占用(netstat 檢查后),但 Nginx 依然報 Permission denied 時,90% 的情況是 SELinux 在起作用。
  • 解決方案:使用 semanage port -l \| grep http 查看允許端口,使用 semanage port -a 添加新端口,而不是直接關(guān)閉 SELinux (setenforce 0)。

3、虛擬主機(jī)配置原則

  • 基于主機(jī)名的虛擬主機(jī),要求所有 server 塊的 listen 指令必須相同(相同的 IP:端口),Nginx 才能通過 server_name 來區(qū)分不同的網(wǎng)站。如果端口不同,它們在邏輯上就是兩個獨(dú)立的服務(wù),而非“基于主機(jī)名”的虛擬主機(jī)實(shí)驗(yàn)。

  • 注:本實(shí)驗(yàn)因環(huán)境限制改用了不同端口,但在純凈環(huán)境下,應(yīng)統(tǒng)一使用 80 端口并解決沖突

(六)擴(kuò)展知識:Linux 中常見的三種“Permission denied”??

1、文件/目錄權(quán)限拒絕 (標(biāo)準(zhǔn) Linux 權(quán)限)

  • 場景:你試圖刪除一個屬于其他用戶的文件,或者執(zhí)行一個沒有執(zhí)行權(quán)限的腳本。
  • 原因rwx(讀、寫、執(zhí)行)權(quán)限設(shè)置不對。
  • 解決:使用 chmod 修改權(quán)限,或使用 chown 修改所有者。

2、端口綁定權(quán)限拒絕 (特權(quán)端口限制)

  • 場景:一個普通用戶試圖啟動服務(wù)監(jiān)聽 80 端口。
  • 原因:Linux 規(guī)定 0-1023 的端口是“特權(quán)端口”,只有 root 用戶才能使用。
  • 解決:使用 sudo 提權(quán),或者改用 1024 以上的大端口(如 8080, 9091)。

3、安全策略權(quán)限拒絕 (SELinux/AppArmor) ——正是上述所遇的故障

場景:即使是 root 用戶,即使端口沒被占用,即使文件權(quán)限正確,系統(tǒng)依然拒絕操作。

原因:系統(tǒng)的安全策略(SELinux)認(rèn)為該操作不安全。

特征:通常伴隨著端口綁定失?。ㄈ缒愕那闆r)或文件訪問失敗(如 Nginx 無法讀取網(wǎng)頁文件)。

解決

  • 正確做法:調(diào)整 SELinux 策略(如使用 semanage port -a ... 放行端口)。
  • 粗暴做法:臨時關(guān)閉 SELinux (setenforce 0)。

四、基于HTTPS加密的Web服務(wù)器配置

(一)實(shí)驗(yàn)?zāi)繕?biāo)

配置基于HTTPS加密的Web站點(diǎn)

(二)實(shí)驗(yàn)步驟

1、生成SSL證書

# 創(chuàng)建證書目錄
sudo mkdir -p /etc/ssl/private
?
# 生成自簽名證書,建議直接復(fù)制粘貼下述代碼
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/nginx-selfsigned.key \
-out /etc/ssl/certs/nginx-selfsigned.crt
  • openssl req: 調(diào)用 OpenSSL 的證書簽名請求(CSR)生成工具。
  • -x509: 指定輸出一個自簽名證書,而不是生成證書請求文件(CSR)。在測試環(huán)境中直接生成證書用此參數(shù)。
  • -nodes: No DES (No DES encryption)。表示私鑰文件不加密。Nginx 服務(wù)啟動時通常需要讀取私鑰,如果私鑰設(shè)置了密碼,每次重啟 Nginx 都需要手動輸入密碼,這在生產(chǎn)服務(wù)器上是不可接受的,因此必須使用 -nodes。
  • -days 365: 指定證書有效期為 365 天。
  • -newkey rsa:2048: 生成一個新的密鑰對(公鑰和私鑰)。rsa:2048 指定使用 RSA 算法,密鑰長度為 2048 位(目前的安全標(biāo)準(zhǔn))。
  • -keyout ...: 指定生成的私鑰文件保存路徑。
  • -out ...: 指定生成的證書文件(公鑰部分)保存路徑。

生成SSL證書

證書信息填寫:

Country Name (2 letter code) [XX]: CN
State or Province Name (full name) []: Beijing
Locality Name (eg, city) [Default City]: Beijing
Organization Name (eg, company) [Default Company Ltd]: My
Organizational Unit Name (eg, section) []: IT
Common Name (eg, your name or your server's hostname) []: www.https.com
Email Address []: admin@example.com

2、配置SELinux上下文

# 配置證書文件SELinux上下文
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/etc/ssl/certs/nginx-selfsigned.crt"
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/etc/ssl/private/nginx-selfsigned.key"
[root@localhost ~]# restorecon -v /etc/ssl/certs/nginx-selfsigned.crt
[root@localhost ~]# restorecon -v /etc/ssl/private/nginx-selfsigned.key

semanage fcontext: SELinux 管理文件上下文的命令。

  • -a: 添加(Add)一條規(guī)則。
  • -t httpd_sys_content_t: 指定目標(biāo)類型。httpd_sys_content_t 是 Apache/Nginx 進(jìn)程允許讀取的文件類型。
  • "/path/...": 對應(yīng)的文件路徑。

restorecon -v: 重新加載(Restore)文件的安全上下文。-v 參數(shù)表示顯示詳細(xì)過程。這一步是將 semanage 定義的規(guī)則應(yīng)用到實(shí)際文件上,讓 Nginx 進(jìn)程能夠讀取證書文件,否則會報 403 Forbidden 或權(quán)限拒絕錯誤。

3、創(chuàng)建配置文件

創(chuàng)建 /etc/nginx/conf.d/https.conf

server {
    listen 443 ssl;
    server_name www.https.com;
    
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    
    location / {
        root /www/https;
        index index.html;
    }
}

4、配置本地解析

編輯 /etc/hosts 文件:

sudo vim /etc/hosts

添加以下內(nèi)容:127.0.0.1 www.https.com

5、編寫測試頁面文件

[root@localhost ~]# cd /www/
[root@localhost www]# ll
總計 0
drwxr-xr-x. 2 root root 24  3月30日 18:35 exam
drwxr-xr-x. 2 root root  6  3月30日 14:49 https
drwxr-xr-x. 2 root root 24  3月30日 18:35 test
[root@localhost www]# cd https/
[root@localhost https]# echo hello,https!!! > index.html
echo hello,httpsll! > index.html
[root@localhost https]# cat index.html 
hello,httpsll!

6、測試配置

# 檢查配置語法(可選)
nginx -t
?
# 重啟Nginx
systemctl restart nginx
?
# 測試訪問(忽略證書驗(yàn)證)
curl -k https://www.https.com

(三)常見問題與解決方案

問題1:證書文件無法加載

現(xiàn)象: cannot load certificate ... No such file or directory

解決方案

# 確保證書目錄存在
sudo mkdir -p /etc/ssl/private
?
# 重新生成證書
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/nginx-selfsigned.key \
-out /etc/ssl/certs/nginx-selfsigned.crt

問題2:HTTPS訪問被重定向

現(xiàn)象: 訪問時被重定向到廣告頁面

解決方案

# 確保本地解析配置正確
echo "127.0.0.1 www.https.com" | sudo tee -a /etc/hosts
?
# 刪除默認(rèn)配置文件
sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak

問題3:SELinux權(quán)限拒絕

現(xiàn)象: Nginx無法訪問文件或端口

解決方案

# 修復(fù)目錄上下文
sudo restorecon -R /www
?
# 允許自定義端口
sudo semanage port -a -t http_port_t -p tcp 9090

五、 實(shí)驗(yàn)總結(jié)與配置思路

(一)四個實(shí)驗(yàn)的整體配置思路

這四個實(shí)驗(yàn)層層遞進(jìn),展示了 Nginx 如何利用 listenserver_name 指令實(shí)現(xiàn)“一臺服務(wù)器,多個站點(diǎn)”。

1、基于 IP 的虛擬主機(jī) (IP-Based)

  • 核心邏輯:不同的 IP 地址 對應(yīng)不同的網(wǎng)站。
  • 配置關(guān)鍵listen 指令后跟具體的 IP:Port(如 172.25.2.130:80)。服務(wù)器通過判斷請求發(fā)往哪個 IP 來決定展示哪個頁面。
  • 前提:服務(wù)器必須配置了多個 IP 地址(IP 別名)。

2、基于端口的虛擬主機(jī) (Port-Based)

  • 核心邏輯:同一個 IP,不同的 端口號 對應(yīng)不同的網(wǎng)站。
  • 配置關(guān)鍵listen 指令后跟不同的端口(如 90919092)。
  • 應(yīng)用場景:IP 資源有限,但需要通過不同入口訪問內(nèi)部服務(wù)。

3、基于主機(jī)名的虛擬主機(jī) (Name-Based)

  • 核心邏輯:同一個 IP 和端口,根據(jù) HTTP 請求頭中的 域名 (Host) 不同來區(qū)分網(wǎng)站。
  • 配置關(guān)鍵:所有 server 塊監(jiān)聽相同的 listen(如 80),通過不同的 server_name(如 www.test.com)來匹配。
  • 本質(zhì):這是目前互聯(lián)網(wǎng)上最常用的“虛擬主機(jī)”技術(shù),即大量網(wǎng)站共用一個 IP。

4、基于 HTTPS 的加密站點(diǎn)

核心邏輯:在 HTTP 的基礎(chǔ)上增加 SSL/TLS 加密層。

配置關(guān)鍵

  • listen 443 ssl;:聲明這是一個 SSL 監(jiān)聽端口。
  • ssl_certificatessl_certificate_key:指定證書和私鑰的路徑。

安全增強(qiáng):結(jié)合了前三種虛擬主機(jī)的邏輯,但增加了數(shù)據(jù)傳輸?shù)募用芎蜕矸蒡?yàn)證(雖然是自簽名)。

(二)關(guān)鍵排錯經(jīng)驗(yàn)總結(jié)

通過這四個實(shí)驗(yàn),可以總結(jié)出 Linux 下 Web 服務(wù)排錯的“黃金法則”:

第一步(服務(wù)層)

systemctl status nginx -> 看服務(wù)是否啟動。

第二步(日志層)

journalctl -xeu nginx.service -> 看具體報錯代碼(如 Permission denied)。

第三步(配置層)

nginx -t-> 檢查語法;grep listen /etc/nginx/*` -> 檢查端口沖突。

第四步(安全層)

當(dāng)端口未被占用但無法綁定時,檢查 SELinux (semanage port -l | grep http);當(dāng)文件存在但無法讀取時,檢查 SELinux 上下文 (ls -Z)。

到此這篇關(guān)于基于紅帽redhat環(huán)境下配置Nginx Web服務(wù)器的文章就介紹到這了,更多相關(guān)紅帽redhat配置Nginx服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻

    Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻

    Nginx?Proxy?Manager是一款功能強(qiáng)大的開源軟件,配置Web應(yīng)用防火墻,可以防止常見的web攻擊,本文就來介紹一下Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻,感興趣的可以了解一下
    2025-02-02
  • Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程

    Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程

    今天通過本文給大家分享Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程,在這小編提示大家在安裝nginx時需要先安裝nginx-full,具體安裝方法跟隨小編一起通過本文學(xué)習(xí)下吧
    2021-05-05
  • Nginx服務(wù)器中配置非80端口的端口轉(zhuǎn)發(fā)方法詳解

    Nginx服務(wù)器中配置非80端口的端口轉(zhuǎn)發(fā)方法詳解

    這篇文章主要介紹了Nginx服務(wù)器中配置非80端口的端口轉(zhuǎn)發(fā)方法詳解,文中使用到了Nginx中的proxy_pass配置項(xiàng),需要的朋友可以參考下
    2016-04-04
  • nginx 解決首頁跳轉(zhuǎn)問題詳解

    nginx 解決首頁跳轉(zhuǎn)問題詳解

    這篇文章主要介紹了nginx 解決首頁跳轉(zhuǎn)問題詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 詳解nginx日志定時備份和刪除

    詳解nginx日志定時備份和刪除

    本篇文章主要介紹了nginx日志定時備份和刪除 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • nginx指定conf文件路徑的方法詳解

    nginx指定conf文件路徑的方法詳解

    在使用?Nginx?時,有時需要指定配置文件(nginx.conf)的路徑,這篇文章為大家整理了一些常用的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • nginx查看配置文件的操作方法

    nginx查看配置文件的操作方法

    nginx的配置放在nginx.conf文件中,一般我們可以使用以下命令查看服務(wù)器中存在的nginx.conf文件,這篇文章主要介紹了nginx查看配置文件,需要的朋友可以參考下
    2024-02-02
  • Nginx 安裝與配置規(guī)則入門詳解

    Nginx 安裝與配置規(guī)則入門詳解

    這篇文章主要介紹了Nginx 安裝與配置規(guī)則入門詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Nginx批量添加二級子域名完美方案

    Nginx批量添加二級子域名完美方案

    這篇文章主要介紹了Nginx批量添加二級子域名完美方案,本文講解使用正則表達(dá)式批量匹配指定域名的二級域名虛擬主機(jī),需要的朋友可以參考下
    2015-04-04
  • Nginx 中 proxy_intercept_errors 實(shí)現(xiàn)后端 502/504 錯誤的優(yōu)雅降級

    Nginx 中 proxy_intercept_errors 實(shí)現(xiàn)后端 502/

    本文主要介紹了Nginx 中 proxy_intercept_errors 實(shí)現(xiàn)后端 502/504 錯誤的優(yōu)雅降級,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04

最新評論

磴口县| 扶沟县| 澎湖县| 涿州市| 宜兰市| 武鸣县| 仪征市| 永昌县| 安阳县| 定远县| 咸阳市| 抚州市| 久治县| 逊克县| 翁源县| 乌兰察布市| 淄博市| 富裕县| 江口县| 丹东市| 南丹县| 合水县| 饶河县| 海宁市| 蓝山县| 乌恰县| 舒城县| 鹤壁市| 长岭县| 仙游县| 永定县| 开鲁县| 肃宁县| 克什克腾旗| 沐川县| 马尔康县| 姜堰市| 两当县| 上饶县| 虞城县| 武城县|