22年全国职业技能大赛——Web Proxy配置(web 代理)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访!

系统服务(22年国赛)—— web Proxy服务(web代理)icon-default.png?t=N7T8https://myweb.myskillstree.cn/114.html

目录

RouterSrv

关闭防火墙和SELinux

申请SSL签字证书

创建Nginx的代理配置文件和配置缓存

创建服务监控脚本:/shells/chkWeb.sh

测试(已做好DNS解析):


RouterSrv

  • 安装 Nginx 组件;

                配置文件名为 proxy.conf,放置在/etc/nginx/conf.d/目录下;

                为 www.chinaskills.cn 配置代理前端,通过 HTTPS 的访问后端 Web服务器;

                后端服务器日志内容需要记录真实客户端的 IP 地址;

                缓存后端 Web 服务器上的静态页面;

  • 创建服务监控脚本:/shells/chkWeb.sh;

                编写脚本监控公司的网站运行情况;

                脚本可以在后台持续运行;

                每隔 3S 检查一次网站的运行状态,如果发现异常尝试 3 次;

                如果确定网站无法访问,则返回用户“The site is being maintained”。

关闭防火墙和SELinux

systemctl stop firewalld
setenforce 0

安装Nginx

        使用WinScp软件或Windows自带SCP命令上传Centos的扩展yum源软件包到RouterSrv上

        修改原先的本地yum源文件

vim /etc/yum.repos.d/local.repo
在原先的基础上添加以下内容:
[package]
name=local
baseurl=file:///mnt/package
gpgcheck=0
enable=1
保存退出
yum update                            # 更新yum源软件列表
yum install nginx  -y                 # 使用yum安装nginx
systemctl restart nginx               # 启动nginx

        打开浏览器,输入nginx服务器的ip地址如果出现以下内容则安装成功!

申请SSL签字证书

RouterSrv

mkdir /CA && cd /CA
openssl genrsa -out nginx.key 2048
openssl req -new -key nginx.key  -out nginx.csr -days 365
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:China
    Locality Name (eg, city) [Default City]:BeiJing
    Organization Name (eg, company) [Default Company Ltd]:skills
    Organizational Unit Name (eg, section) []:Operations Departments 
    Common Name (eg, your name or your server's hostname) []:web.chinaskills.cn
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

        将生成的待签字复制到AppSrv上

scp /CA/nginx.csr root@192.168.100.100:/csk-rootca

        AppSrv上进行签字后送回

cd /csk-rootca/
openssl ca -in nginx.csr -out certs/nginx.crt
scp certs/nginx.crt root@192.168.100.254:/CA

创建Nginx的代理配置文件和配置缓存

vim /etc/nginx/conf.d/proxy.conf
添加以下内容:
server {
        listen 80;
        listen 443 ssl;
        ssl_certificate "/CA/nginx.crt";
        ssl_certificate_key "/CA/nginx.key";
        server_name web.chinaskills.cn;
        location ~.*\.* {
        proxy_pass http://www.chinaskills.cn;
        proxy_set_header x-real-ip $remote_addr;

        proxy_cache proxy;
        proxy_set_header Host $host;
        proxy_cache_valid 200 301 302 5m;

}
}
保存退出

        缓存配置

vim /etc/nginx/nginx.conf
在http下添加以下内容:
    proxy_cache_path /cache levels=1:2 keys_zone=proxy:20m max_size=20m;
保存退出
mkdir /cache                                        # 创建缓存目录

        在AppSrv上将Apache的缓存日志修改

vim /etc/httpd/conf/httpd.conf 
在%h后添加%{x-real-ip}i即可
     LogFormat "%h %{x-real-ip}i %l %u %t \"%r\" %>s %b \"%{Referer}i
\" \"%{User-Agent}i\"" combined
保存退出
systemctl restart httpd                              # 重启Apache服务

创建服务监控脚本:/shells/chkWeb.sh

RouterSrv

mkdir /shells 
vim /shells/chkWeb.sh
添加以下内容:
#!/bin/bash
url=https://www.chinaskills.cn
o=`curl -s -k $url -I |grep 'OK' |awk '{print $2}'`
while [ true ]; do
/bin/sleep 3
  if [[ $o -eq 200 ]];then
     echo "$url 正常打开 3s"
     else
        for i in 1 2 3;do
          if [[ $o -eq 200 ]];then
              echo "$url 正常打开"
          else echo "$url 异常 $i"
          fi
        done
        echo "The site is being maintained"
  fi
done
保存退出

重启nginx服务

systemctl restart nginx

测试(已做好DNS解析):

InsideCli

        刚开始Nginx的缓存目录里面是什么都没有的

cd /cache
ll

接下来我们在客户端上访问一下

        客户端打开火狐浏览器,输入:https://web.chinaskills.cn

        此时再查看缓存目录(nginx.conf中指定的)会发现多了个目录

**** 如果出现配置的www站点的反向代理但是跳转到的是Apache的download站点

原因:

        1、www和download站点都占用的是443端口;

        2、配置文件加载的时候download比www站点更先加载,因为我的两个配置文件名分别是www.chinaskills.cn.conf和download.chinaskills.cn.conf,而在英文排序中d在w前面,所以会被先加载(亲自测试过)

解决方法:

        1、修改download站点的端口;

        2、在http.conf文件的倒数第二行添加引用www站点配置文件的配置,保证它在download配置文件之前被引用(推荐),如下:

        在Apache服务器的日志文件中查看访问者的真实IP地址

tail -n 1 /etc/httpd/logs/access_log 
    192.168.100.254 192.168.0.190 - - [26/Mar/2024:19:43:22 +0800] "GET / HTTP/1.0" 200 51962 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

        运行监控脚本进行测试:

bash /shells/chkWeb.sh
显示以下内容:
    https://www.chinaskills.cn 正常打开 3s
    https://www.chinaskills.cn 正常打开 3s
    https://www.chinaskills.cn 正常打开 3s

        关闭Apache服务后再次尝试

systemctl stop httpd
bash /shells/chkWeb.sh
显示以下内容:
    https://www.chinaskills.cn 异常 1
    https://www.chinaskills.cn 异常 2
    https://www.chinaskills.cn 异常 3
    网站正在维护中...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/579024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OGG extract进程占据大量虚拟内存导致服务器内存异常增长分析

现象 oracle服务器一节点内存,一个月来持续升高,近一月上涨10%左右。 问题分析 OS内存使用情况 使用内存最大的10个进程如下,PID为279417占用最大的内存。 查询279417,发现是ogg相关进程。 发现ogg的extract进程占用了大量的虚拟内…

软件测试(Web自动化测试)(二)

一.Selenium WebDriver的基本应用 (一)安装浏览器驱动 1.关闭浏览器的自动更新功能 以Windows7(64位)操作系统为例,讲解如何关闭Chrome浏览器的自动更新。首先按下快捷键“WinR”,打开运行对话框&#x…

【备战软考(嵌入式系统设计师)】02-计算机指令

指令集 我们计算机要执行程序,本质上是执行一条条的指令,而指令是从指令集中取出的,目前常见的指令集有CISC(Complex Instruction Set Computer,复杂指令集)和RISC(Reduced Instruction Set Co…

2024最新智慧医疗智慧医院大数据展示,医院数据采集概况、医院指标分析、医院就诊趋势分析等。源代码免费下载。

系列文章目录 【复制就能用1】2分钟玩转轮播图,unslider的详细用法 【复制就能用2】css实现转动的大风车,效果很不错。 【复制就能用3】2分钟自己写小游戏:剪刀石头布小游戏、扫雷游戏、五子棋小游戏 【复制就能用4】2024最新智慧医疗智慧医院大数据…

c++并查集

文章目录 前言一、并查集1、并查集原理2、并查集实现3、并查集应用1.省份数量2.等式方程的可满足性 前言 一、并查集 1、并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后…

应急行业的智能安全帽(高端)

前面介绍了低端、中端安全帽,接着再讲讲高端安全帽。做高端安全帽的企业非常少,估计一只手都数的出来。确实也和智能安全帽这个领域体量有关系,并且他有一个新的“劲敌”——智能眼镜从其他领域瓜分原属于他的市场,这些都是题外话…

SpringBoot引入Layui样式总是出现404

一般出现Layui样式文件如css,js404的错误 解决方案 (1)首先将其中的静态资源下载resources/static中 (2)在启动类中重写方法 package com.gq.booksystem;import org.mybatis.spring.annotation.MapperScan; import …

【ETAS CP AUTOSAR工具链】RTE层基本概念与开发流程

本篇文章续接上篇文章【ETAS CP AUTOSAR工具链】基本概念与开发流程,继续按上篇文章描述的ETAS CP工具链进行开发的基本框架,讲述了“RTE集成与配置”这部分的基本概念与开发流程。 RTE(Runtime Environment)处于应用层与基础软件…

【Godot4.2】自定义Todo清单类 - myTodoList

概述 在写myList类的时候,就想到可以写一个类似的Todo清单类。 基础思路 本质还是在内部维护一个数组,在其基础上进行增删改查操作的封装为了方便存储数据,编写一个自定义内置类TodoItem,内部数组就变成了Array[TodoItem]类型的…

Git | 远程操作

Git | 远程操作 文章目录 Git | 远程操作0、分布式版本控制系统概念1、创建远程仓库2、克隆远程仓库https方式ssh方式 3、推送至远程仓库4、本地拉取远程仓库5、配置Git忽略特殊文件给命令配置别名 6、标签管理创建标签操作标签 0、分布式版本控制系统概念 Git是一个分布式版本…

Git--分布式版本控制系统

目录 一、理解分布式版本控制系统二、远程仓库三、克隆远程仓库四、向远程仓库推送五、拉取远程仓库六、配置Git七、给命令配置别名八、创建标签九、操作标签 一、理解分布式版本控制系统 我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等&a…

24深圳杯AC题完整思路+可执行代码+参考论文!!!!

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…

three.js 学习笔记 | 光线投射技术 - 包围盒(碰撞检测)

文章目录 three.js 学习笔记光线投射技术实现3D场景交互事件 THREE.Raycaster坐标系的转换案例:选中的模型变为红色 包围盒Box3 - 碰撞检测AABB包围盒辅助器Box3Helper案例1:创建AABB包围盒/包围球computeBoundingBox与boundingBox 搭配使用,…

【数据结构】二叉树(带图详解)

文章目录 1.树的概念1.2 树的结构孩子表示法孩子兄弟表示法 1.3 相关概念 2.二叉树的概念及结构2.1 二叉树的概念2.2 数据结构中的二叉树-五种形态2.3 特殊的二叉树2.4 二叉树的存储结构顺序存储链式存储 2.5 二叉树的性质 3. 堆3.1 堆的定义3.2 堆的实现堆的结构堆的插入向上调…

springcloud按版本发布微服务达到不停机更新的效果

本文基于以下环境完成 spring-boot 2.3.2.RELEASEspring-cloud Hoxton.SR9spring-cloud-alibaba 2.2.6.RELEASEspring-cloud-starter-gateway 2.2.6.RELEASEspring-cloud-starter-loadbalancer 2.2.6.RELEASEnacos 2.0.3 一、思路 实现思路: 前端项目在请求后端接…

SVN--基本原理与使用(超详细)

目录 一、SVN概述二、SVN服务端软件安装三、SVN服务端配置四、SVN客户端软件安装与使用五、SVN三大指令六、SVN图标集与忽略功能6.1 图标集6.2 忽略功能 七、SVN版本回退八、SVN版本冲突九、SVN配置多仓库与权限控制9.1 配置多仓库9.2 权限控制 十、服务配置与管理十一、模拟真…

Java | Leetcode Java题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; class Solution {public int totalNQueens(int n) {Set<Integer> columns new HashSet<Integer>();Set<Integer> diagonals1 new HashSet<Integer>();Set<Integer> diagonals2 new HashSet<Integer>…

手写文本识别系统的最佳实践

手写文本识别系统的最佳实践 摘要IntroductionRelated WorkProposed HTR SystemConvolutional Backbone:Flattening Operation:Recurrent Head:CTC shortcut: Best Practices for a Handwritten Text Recognition System 摘要 手写文本识别在近年来随着深度学习及其应用的兴起…

文件夹惊变文件?揭秘原因及解决方案

在日常工作和生活中&#xff0c;电脑已经成为我们不可或缺的助手。然而&#xff0c;有时我们会遇到一些令人困惑的问题&#xff0c;比如&#xff0c;文件夹突然变成了文件。这听起来可能有些匪夷所思&#xff0c;但它确实会发生&#xff0c;而且给用户带来了不小的麻烦。当熟悉…

java-spring-mvc(知识点讲解-第一天)-欢迎各位大佬提建议

目录 &#x1f383;MVC定义 &#x1f9e8;创建工程 &#x1f3a8;SpringMVC处理请求 请求分类及处理方式 静态请求 处理静态前端页面方式 动态请求 处理动态前端页面方式 ⚙小试牛刀 &#x1f3c6;常见问题 &#x1f4cc;HTTP协议 超文本传输协议 请求 &#x1f383;MVC…