使用Centos配置web proxy(nginx代理)

 更新时间:2025年12月02日 09:42:15   作者:喵神星  
本文介绍了如何在Webproxy上安装和配置Nginx,主要内容包括安装Nginx、配置SSL证书、创建proxy配置文件、设置缓存记录真实客户端IP、重启Nginx、创建数据库、测试缓存和配置监控脚本
  • Web proxy
  • 安装Nginx组件
  • 配置文件名为proxy.conf,放置在/etc/nginx/conf.d/目录下
  • 为www.chinaskills.cn配置代理前端,通过HTTPS的访问后端Web服务器
  • 后端服务器日志内容需要记录真实客户端的IP地址
  •  缓存后端Web服务器上的静态页面
  • 创建服务监控脚本:/shells/chkWeb.sh
  • 编写脚本监控公司的网站运行情况
  •  脚本可以在后台持续运行
  •  每隔3S检查一次网站的运行状态,如果发现异常尝试3次
  •  如果确定网站无法访问,则返回用户“网站正在维护中,请您稍后再试”的页面

一、安装nginx

nginx

[root@routersrv nginx/]# yum install ./* -y 

二、配置nginx证书

[root@routersrv nginx/]# nano /etc/nginx/conf.d/proxy.conf #proxy.conf需要自己创建
#可参考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; #记录真实的客户端ip
proxy_cache_valid 200 301 302 5m;           #日志有效性
}
}

三、创建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;      #记录真实的客户端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      #创建缓存目录

3、去服务器端设置缓存记录真实客户端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 httpd

4、重启nginx(前提是ping通httpd服务和proxy.chinaskills.cn)

四、数据库

复制 
#下载数据库
yum install mariadb-server 
#启动数据库
systemctl start mariadb 
#初始化root密码
mysql_secure_installation 
ChinaSkills23
#登录到数据库,创建数据库
mysql -uroot -p
ChinaSkills23
create database wordpress;
flush privileges;
exit;
#网页的wordpress
wordpress 
#需要在appsrv的域名服务中添加该域名这里设置到本地是方便测试
[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 是否有网页
  • 2、在主服务器的网页根目录中创建一个1.png图片,再到客户端浏览器访问该图片即可在cache缓存目录中看到缓存
  • 3、在主服务器 cat /var/log/httpd/logs/acceess_log 即可查看到客户端真实ip访问网页
  • 4、访问网页图片之后查看cache文件中是否有缓存文件

六、配置监控脚本

[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 "网页打开正常"
else
for i in 1 2 3;do
if [[ $x -eq 200 ]];then
echo "网页打开正常"
else
echo "网页打开异常$i"
fi
done
echo "网站正在维护中,请您稍后再试"
fi
done
[root@routesrv /shells]# bash chkWeb.sh
网页打开正常
网页打开正常
网页打开正常
[root@appsrv /]# systemctl stop httpd
[root@routesrv /shells]# bash chkWeb.sh
网站打开异常
网站打开异常
网站打开异常
网站正在维护中,请您稍后再试

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Nginx实现负载均衡的策略

    使用Nginx实现负载均衡的策略

    本篇文章主要介绍了使用Nginx实现负载均衡的策略,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 关于Nginx动静分离详解以及配置

    关于Nginx动静分离详解以及配置

    这篇文章主要介绍了关于Nginx动静分离详解以及配置,动静分离是通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时,需要的朋友可以参考下
    2023-04-04
  • nginx处理http请求实例详解

    nginx处理http请求实例详解

    这篇文章主要介绍了nginx处理http请求实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 关于Nginx跨域问题及解决方案(CORS)

    关于Nginx跨域问题及解决方案(CORS)

    文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CORS的基本概念、常见的跨域场景、Nginx如何解决CORS问题,以及如何配置Nginx来处理CORS请求
    2025-02-02
  • 云服务器使用宝塔搭建Python环境,运行django程序

    云服务器使用宝塔搭建Python环境,运行django程序

    本文详细讲解了在云服务器使用宝塔搭建Python环境,运行django程序的方法。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Nginx 禁止IP访问 只允许域名访问

    Nginx 禁止IP访问 只允许域名访问

    今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络上搜到以下解决方案
    2016-09-09
  • nginx地址重写、反向代理方式

    nginx地址重写、反向代理方式

    这篇文章主要介绍了nginx地址重写、反向代理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Nginx代理Partainer的实现

    Nginx代理Partainer的实现

    本文主要介绍了Nginx代理Partainer的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Nginx中IF语句实现数学比较功能

    Nginx中IF语句实现数学比较功能

    这篇文章主要介绍了Nginx中IF语句实现数学比较功能,即在Nginx中用if判断数字大小,类似编程语言中的逻辑比较,需要的朋友可以参考下
    2015-02-02
  • 浅谈nginx读写锁的实现逻辑

    浅谈nginx读写锁的实现逻辑

    本文主要介绍了浅谈nginx读写锁的实现逻辑,是通过自旋锁来实现的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05

最新评论