在 CentOS 7 上安裝Nginx和配置http代理
1. 安裝 EPEL 倉庫
NGINX 不在 CentOS 的默認倉庫中,因此首先需要安裝 EPEL(Extra Packages for Enterprise Linux) 倉庫。
sudo yum install epel-release
2. 安裝 NGINX
通過 yum 包管理工具安裝 NGINX。
sudo yum install nginx
3. 啟動 NGINX 服務
sudo systemctl start nginx
4. 設置 NGINX 開機自啟
如果你希望 NGINX 在系統(tǒng)啟動時自動啟動,使用以下命令設置開機自啟:
sudo systemctl enable nginx
5. 防火墻配置
如果CentOS 7 上啟用了 firewalld 防火墻,需要允許 HTTP 和 HTTPS 流量通過。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
6. 驗證安裝
通過訪問服務器的 IP 地址或域名來驗證 NGINX 是否成功運行:
-
在瀏覽器中輸入
http://<your-server-ip>,如果你看到 NGINX 默認頁面,則安裝成功。
7. 檢查 NGINX 服務狀態(tài)
sudo systemctl status nginx
8. 停止或重啟 NGINX
sudo systemctl stop nginx #停止NGINX服務 sudo systemctl restart nginx #重啟NGINX服務
9. 調(diào)整配置(可選)
NGINX 的配置文件位于 /etc/nginx/nginx.conf,你可以根據(jù)需要進行編輯。默認的 Web 根目錄是 /usr/share/nginx/html,你可以根據(jù)需要將文件放置在該目錄下。
編輯配置文件:
sudo vi /etc/nginx/nginx.conf
如果修改了配置文件,記得重新加載 NGINX 配置:
sudo systemctl reload nginx
配置反向代理
假設你要將來自客戶端的請求代理到運行在 localhost:8080 上的應用服務器。你可以按照以下步驟配置 NGINX 作為反向代理。
1.編輯 NGINX 配置文件:
打開默認的配置文件 nginx.conf 或者為特定站點創(chuàng)建一個新的配置文件:
sudo vi /etc/nginx/nginx.conf
或者,也可以在 /etc/nginx/conf.d/ 目錄下創(chuàng)建一個新的配置文件,比如 myproxy.conf。
2.配置反向代理
在配置文件中,使用 proxy_pass 指令將客戶端請求轉(zhuǎn)發(fā)到后端服務器。例如,如果你想將請求代理到運行在 localhost:8080 上的服務,可以像下面這樣設置:
server {
listen 80;
server_name example.com; # 你的網(wǎng)站域名
location / {
proxy_pass http://localhost:8080; # 將請求轉(zhuǎn)發(fā)到 localhost:8080
proxy_set_header Host $host; # 保持原始的 Host 頭部
proxy_set_header X-Real-IP $remote_addr; # 客戶端的真實 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 用于獲取客戶端的真實 IP 地址
proxy_set_header X-Forwarded-Proto $scheme; # 保持請求協(xié)議(http/https)
}
}
-
proxy_pass: 用于設置目標后端服務地址,可以是http://或https://協(xié)議。 -
proxy_set_header: 將一些必要的頭部信息傳遞給后端服務器,確保后端服務可以正確地識別客戶端信息。
3.檢查 NGINX 配置是否正確:
sudo nginx -t
4.重啟 NGINX:
如果沒有錯誤,你可以重啟 NGINX 服務以使配置生效:
curl http://example.com
5. 測試反向代理
現(xiàn)在,所有訪問 http://example.com 的請求都將被轉(zhuǎn)發(fā)到 localhost:8080。你可以通過瀏覽器或者 curl 命令來測試:
如果一切配置正確,你應該會看到后端服務器的響應。
反向代理的常見應用
-
負載均衡:
NGINX 可以作為負載均衡器,將請求分發(fā)到多個后端服務器。例如: -
SSL 終止:
NGINX 可以處理 SSL/TLS 加密和解密,將加密流量轉(zhuǎn)發(fā)到后端服務器,后端服務器只需要處理 HTTP 請求。配置 SSL 終止的例子: -
緩存:
反向代理還可以用于緩存靜態(tài)內(nèi)容(如圖片、CSS、JS 文件等),提高性能和響應速度。 -
安全性:
反向代理可以隱藏后端服務器的 IP 地址,增強安全性,防止外部直接訪問后端服務。

浙公網(wǎng)安備 33010602011771號