使用Centos配置web proxy(nginx代理)
更新時(shí)間:2025年12月02日 09:42:15 作者:喵神星
本文介紹了如何在Webproxy上安裝和配置Nginx,主要內(nèi)容包括安裝Nginx、配置SSL證書、創(chuàng)建proxy配置文件、設(shè)置緩存記錄真實(shí)客戶端IP、重啟Nginx、創(chuàng)建數(shù)據(jù)庫、測試緩存和配置監(jiān)控腳本
- Web proxy
- 安裝Nginx組件
- 配置文件名為proxy.conf,放置在/etc/nginx/conf.d/目錄下
- 為www.chinaskills.cn配置代理前端,通過HTTPS的訪問后端Web服務(wù)器
- 后端服務(wù)器日志內(nèi)容需要記錄真實(shí)客戶端的IP地址
- 緩存后端Web服務(wù)器上的靜態(tài)頁面
- 創(chuàng)建服務(wù)監(jiān)控腳本:/shells/chkWeb.sh
- 編寫腳本監(jiān)控公司的網(wǎng)站運(yùn)行情況
- 腳本可以在后臺(tái)持續(xù)運(yùn)行
- 每隔3S檢查一次網(wǎng)站的運(yùn)行狀態(tài),如果發(fā)現(xiàn)異常嘗試3次
- 如果確定網(wǎng)站無法訪問,則返回用戶“網(wǎng)站正在維護(hù)中,請您稍后再試”的頁面
一、安裝nginx
nginx
[root@routersrv nginx/]# yum install ./* -y
二、配置nginx證書
[root@routersrv nginx/]# nano /etc/nginx/conf.d/proxy.conf #proxy.conf需要自己創(chuàng)建
#可參考nginx.conf文件
server {
listen 443 ssl;
server_name web.chinaskills.cn;
ssl_certificacte_key /etc/nginx/nginx.key;
ssl_certificate /etc/nginx/nginx.crt;
location / #可參考/usr/share/doc/nginx/中配置文件
proxy_pass https://www.chinaskills.cn; #代理域名
proxy_cache proxy; #開啟緩存
proxy_set_header Host $host; #記錄ip
proxy_set_header x-real-ip $remote_addr; #記錄真實(shí)的客戶端ip
proxy_cache_valid 200 301 302 5m; #日志有效性
}
}三、創(chuàng)建proxy文件并寫入配置
1、proxy.conf
[root@routersrv /]# nano /etc/nginx/conf.d/proxy.conf
#可參考nginx.conf文件
server {
listen 443 ssl;
nameserver proxy.chinaskills.cn;
ssl_certificacte_key /etc/nginx/nginx.key;
ssl_certificate /etc/nginx/nginx.crt;
location ~./. { #可參考/usr/share/doc/nginx/中配置文件
proxy_pass https://www.chinaskills.cn; #代理域名
proxy_cache proxy; #開啟緩存
proxy_set_header Host $host; #記錄ip
proxy_set_header x-real-ip $remote_addr; #記錄真實(shí)的客戶端ip
proxy_cache_valid 200 301 302 5m; #日志有效性
}
}2、緩存配置
[root@routersrv nginx/]# nano /etc/nginx/nginx.conf
#在http中添加即可
http{
proxy_cache_path /cache levels=1:2 keys_zone=proxy:20m max_size=20m;
}
[root@routersrv /]# mkdir /cache #創(chuàng)建緩存目錄3、去服務(wù)器端設(shè)置緩存記錄真實(shí)客戶端ip訪問
[root@routersrv nginx/]# nano /etc/httpd/conf/httpd.conf
LogFormat "%{x-real-ip}i" #將%h改成%{x-real-ip}i即可
[root@routersrv nginx/]# systemctl restart httpd4、重啟nginx(前提是ping通httpd服務(wù)和proxy.chinaskills.cn)
四、數(shù)據(jù)庫
復(fù)制 #下載數(shù)據(jù)庫 yum install mariadb-server #啟動(dòng)數(shù)據(jù)庫 systemctl start mariadb #初始化root密碼 mysql_secure_installation ChinaSkills23 #登錄到數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫 mysql -uroot -p ChinaSkills23 create database wordpress; flush privileges; exit; #網(wǎng)頁的wordpress wordpress #需要在appsrv的域名服務(wù)中添加該域名這里設(shè)置到本地是方便測試 [root@routersrv nginx/]# nano /etc/resolv.conf nameserver 192.168.100.100 [root@routersrv nginx/]# nano /etc/hosts 192.168.100.254 web.chinaskills.cn [root@routersrv nginx/]# systemctl restart nginx root ChinaSkills23 localhost
五、測試
- 1、在客戶端瀏覽器搜索 https://proxy.chinaskills.cn 是否有網(wǎng)頁
- 2、在主服務(wù)器的網(wǎng)頁根目錄中創(chuàng)建一個(gè)1.png圖片,再到客戶端瀏覽器訪問該圖片即可在cache緩存目錄中看到緩存
- 3、在主服務(wù)器 cat /var/log/httpd/logs/acceess_log 即可查看到客戶端真實(shí)ip訪問網(wǎng)頁
- 4、訪問網(wǎng)頁圖片之后查看cache文件中是否有緩存文件
六、配置監(jiān)控腳本
[root@routersrv /]# nano /shells/chkWeb.sh
#!/bin/bash
url=https://www.chinaskills.cn
X=curl -s -k $url -I |grep 'OK' |awk {print $2}
while [ true ];do
sleep 3
if [[ $x -eq 200 ]];then
echo "網(wǎng)頁打開正常"
else
for i in 1 2 3;do
if [[ $x -eq 200 ]];then
echo "網(wǎng)頁打開正常"
else
echo "網(wǎng)頁打開異常$i"
fi
done
echo "網(wǎng)站正在維護(hù)中,請您稍后再試"
fi
done
[root@routesrv /shells]# bash chkWeb.sh
網(wǎng)頁打開正常
網(wǎng)頁打開正常
網(wǎng)頁打開正常
[root@appsrv /]# systemctl stop httpd
[root@routesrv /shells]# bash chkWeb.sh
網(wǎng)站打開異常
網(wǎng)站打開異常
網(wǎng)站打開異常
網(wǎng)站正在維護(hù)中,請您稍后再試總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Nginx實(shí)現(xiàn)負(fù)載均衡的策略
本篇文章主要介紹了使用Nginx實(shí)現(xiàn)負(fù)載均衡的策略,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
云服務(wù)器使用寶塔搭建Python環(huán)境,運(yùn)行django程序
本文詳細(xì)講解了在云服務(wù)器使用寶塔搭建Python環(huán)境,運(yùn)行django程序的方法。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
Nginx代理Partainer的實(shí)現(xiàn)
本文主要介紹了Nginx代理Partainer的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Nginx中IF語句實(shí)現(xiàn)數(shù)學(xué)比較功能
這篇文章主要介紹了Nginx中IF語句實(shí)現(xiàn)數(shù)學(xué)比較功能,即在Nginx中用if判斷數(shù)字大小,類似編程語言中的邏輯比較,需要的朋友可以參考下2015-02-02

