基于nginx实现正向代理(linux版本)

介绍

在企业开发环境中,局域网内的设备通常需要通过正向代理服务器访问互联网。正向代理服务器充当中介,帮助客户端请求外部资源并返回结果。局域网内也就是俗称的内网,局域网外的互联网就是外网,在一些特殊场景内,例如:医院。而局域网中的客户端要访问这些资源时,就需要通过代理服务器。这种通过代理服务器访问外部网络资源的方式,就是正向代理。正向代理不仅用于提升访问速度,还能提高网络安全性、管理访问权限和优化网络流量。

原生 nginx 可以作为 http 的正向代理服务器,但是不能用做 https 的正向代理服务器。因为 http 正向代理使用的是 get 请求,但是 https 使用的确实 connect 请求,而原生 nginx 不支持 connect 请求。所以需要第三方模块 ngx_http_proxy_connect_module 来支持 https 的正向代理,使用这个插件,意味着需要重新编译 nginx,在编译的过程中,将插件添加进去。本次编译以目前稳定版 1.26.2 为例。

安装部署过程

  1. 获取安装包。nginx安装包、ngx_http_proxy_connect_module 安装包。1.26.2的可以直接nginx从官网:https://nginx.org/en/download.html, ngx_http_proxy_connect_module 从 github:https://github.com/chobits/ngx_http_proxy_connect_module 。

  2. 将安装包拷贝到服务器上,然后提前安装一些库:gcc,openssl,pcre,zlib库了,这些nginx安装必须的库。假设我们这里把安装文件都放置在/root/目录下

yum install gcc
yum install openssl-devel
yum install pcre-devel
yum install zlib-devel
  1. 解压安装包并安装
    ## 解压
    tar -xzvf nginx-1.26.2.tar.gz
    ## 进入解压后的目录
    cd nginx-1.26.2 
    ## patch connect模块 ,这个版本需要根据github上的版本对照确定
    ## nginx1.26.2对应的是 proxy_connect_rewrite_10210.patch
    patch -p1 < /root/ngx_http_proxy_connect_module/patch/\
    proxy_connect_rewrite_102101.patch
    ## 编译校验 ,这里 --prefix=/usr/local/nginx 指定的最终安装目录,这个可以根据实际情况调整
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module \
    --with-http_ssl_module \
    --add-module=/root/ngx_http_proxy_connect_module
    ## 编译
    make
    ## 安装
    make install
    
  2. 配置
   server {## 开放的监听端口listen 8081;## dns,这个很重要,61.147.37.1这个和所在服务器的dns要保持一致## 114.114.114.114 8.8.8.8这两个是电信默认的dns,可以不要resolver 61.147.37.1 114.114.114.114 8.8.8.8;proxy_connect;proxy_connect_allow 443 80;proxy_connect_timeout 10s;proxy_read_timeout  10;ssl_protocols TLSv1.2 TLSv1.3; location / {proxy_pass $scheme://$http_host$request_uri;# 发送到被代理网站的请求需要添加Host请求头proxy_set_header Host $host;		   }}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于FPGA的多功能数字钟设计

基于FPGA的多功能数字钟设计 前言基础知识按键数码管 系统概述按键使用说明模块描述模块设计button_debouncebutton_controllerclock_controllerdigital_tube 整体资源用量测试视频 前言 本工程主要是数码管、按键、LED的应用开发。 注&#xff1a;本工程所有IP均使用源码开发…

利用开源AI智能名片2+1链动模式S2B2C商城小程序拓展社交电商的深度实践探索

摘要&#xff1a;在数字化浪潮席卷全球的今天&#xff0c;社交电商作为一种新兴的商业模式&#xff0c;正以前所未有的速度改变着消费者的购物习惯与商家的营销策略。本文深入探讨了开源AI智能名片21链动模式S2B2C商城小程序在社交电商领域的应用&#xff0c;通过分析其核心机制…

Python 扫描枪读取发票数据导入Excel

财务需要一个扫描枪扫描发票文件&#xff0c;并将主要信息录入Excel 的功能。 文件中sheet表的列名称&#xff0c;依次为&#xff1a;发票编号、发票编码、日期、金额、工号、扫描日期。 扫描的时候&#xff0c;Excel 文件需要关闭&#xff0c;否则会报错。 import openpyxl …

【优选算法篇】:模拟算法的力量--解决复杂问题的新视角

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;优选算法篇–CSDN博客 文章目录 一.模拟算法二.例题1.替换所有的问号2.提莫攻击3.外观数列4…

2_CSS3 背景 --[CSS3 进阶之路]

CSS3 中的背景属性提供了许多强大的功能来增强网页设计&#xff0c;包括但不限于多背景图像、渐变、背景大小控制等。以下是一些关键的 CSS3 背景属性及其用法示例。 1. 多重背景图像 CSS3 允许你为一个元素设置多个背景图像。这些图像按照它们在 background-image 属性中定义…

数据处理之计算文本相似度|余弦相似度|欧氏距离

计算文本相似度是自然语言处理中的一个重要任务&#xff0c;用于评估两个或多个文本之间的相似程度。以下是几种常用的方法及其背后的实现机制&#xff1a; 基于词频的方法(重点) 余弦相似度 (Cosine Similarity)&#xff1a;将文档表示为词频向量&#xff08;如使用词袋模型…

精通SCP命令:安全高效地进行文件传输

精通SCP命令&#xff1a;安全高效地进行文件传输 SCP&#xff08;Secure Copy Protocol&#xff09;命令是一个基于SSH协议的命令行工具&#xff0c;用于在本地系统和远程系统之间安全地复制文件和目录。以下是SCP命令的详细用法&#xff1a; 基本语法 scp [选项] [源文件或…

Word 转成pdf及打印的开源方案支持xp

Word转成pdf、打印的方案几乎没有免费开源的方案&#xff0c;现在提供一个通过LibreOffice实现的方案 操作依赖LibreOffice需要安装&#xff0c;点此下载老版本 5.4.7.2是最后一个支持xp的 版本如需xp要请安装此版本 LibreOffice官方介绍 LibreOffice 是一款开放源代码的自…

蓝桥杯备考:数据结构之栈 和 stack

目录 栈的概念以及栈的实现 STL 的stack 栈和stack的算法题 栈的模板题 栈的算法题之有效的括号 验证栈序列 后缀表达式 括号匹配 栈的概念以及栈的实现 栈是一种只允许在一端进行插入和删除的线性表 空栈&#xff1a;没有任何元素 入栈&#xff1a;插入元素消息 出…

C++中的条件变量(condition_variable)详解:小白版

在编程中&#xff0c;我们经常需要处理多个任务&#xff0c;这些任务可能需要同时运行&#xff0c;也可能需要按照一定的顺序运行。这就涉及到了线程的概念。线程就像是一个小程序&#xff0c;它可以在程序中独立运行&#xff0c;而且可以和其他线程并行执行。 但是&#xff0…

【python】OpenCV—Local Translation Warps

文章目录 1、功能描述2、原理分析3、代码实现4、效果展示5、完整代码6、参考 1、功能描述 利用液化效果实现瘦脸美颜 交互式的液化效果原理来自 Gustafsson A. Interactive image warping[D]. , 1993. 2、原理分析 上面描述很清晰了&#xff0c;鼠标初始在 C&#xff0c;也即…

STM32标准库学习笔记(十)SPI

前言 学习永无止境&#xff01;本篇是嵌入式开发之片上外设SPI&#xff0c;了解基本硬件原理以及通信协议。 注&#xff1a;本文章为学习笔记&#xff0c;部分图片与文字来源于网络/江协科技课程/手册&#xff0c;如侵权请联系&#xff01;谢谢&#xff01; 一、SPI通信概述 1.…

探索 C++ 与 LibUSB:开启 USB 设备交互的奇幻之旅

一、引言 在当今数字化时代&#xff0c;USB&#xff08;通用串行总线&#xff09;设备无处不在&#xff0c;从常见的 U 盘、鼠标、键盘&#xff0c;到复杂的工业数据采集设备、医疗监测仪器等&#xff0c;它们以方便快捷的插拔式连接&#xff0c;为人们的生活和工作带来了极大…

LeetCode 209 题:长度最小的子数组

LeetCode 209 题&#xff1a;长度最小的子数组 (Minimum Size Subarray Sum) LeetCode 第209题要求给定一个正整数数组 nums 和一个正整数 target&#xff0c;找出具有最小长度的连续子数组&#xff0c;使得子数组的和大于或等于 target。如果不存在这样的子数组&#xff0c;返…

从github上,下载的android项目,从0-1进行编译运行-踩坑精力,如何进行部署

因为国内的网络原因&#xff0c;一直在anroidstudio开发的问题上&#xff0c;是个每个开发者都会踩坑 一直以为是自己的原因&#xff0c;其实很多都是国内网络的原因&#xff0c;今天就从一个开发者的视角 把从github上一个陌生的项目&#xff0c;如何通过本地就行运行的 首先…

计算机网络 (40)域名系统DNS

前言 计算机网络域名系统DNS&#xff08;Domain Name System&#xff09;是互联网的基础技术之一&#xff0c;它负责将人类可读的域名转换为计算机用来通信的数字IP地址。 一、基本概念 DNS的主要目的是将域名解析或翻译为IP地址&#xff0c;使得用户可以通过简单易记的域名来访…

使用Dify创建个问卷调查的工作流

为啥要使用Dify创建工作流呢&#xff1f;一个基于流程的智能体的实现&#xff0c;特别是基于业务的实现&#xff0c;使用Dify去实现时&#xff0c;通常都是一个对话工作流&#xff0c;当设计到相对复杂一些的流程时&#xff0c;如果将所有逻辑都放在对话工作流中去实现&#xf…

toRef 和 toRefs 详解及应用

在 Vue 3 中&#xff0c;toRef 和 toRefs 是两个用于创建响应式引用的工具&#xff0c;主要用于组合式 API&#xff08;Composition API&#xff09;的场景中 1. toRef 定义 toRef 将某个对象的某个属性包装成一个响应式引用。这样可以直接对该引用进行操作&#xff0c;而不需…

八 rk3568 android11 AP6256 蓝牙调试

一 经典蓝牙 经典蓝牙默认可以工作, 验证可以连接 蓝牙鼠标,键盘, 连接手机等等, 在 系统设置里打开蓝牙 ,扫描设备,配对连接即可。 注: 连接 ANDROID 手机的坑 1 手机连接之后空闲状态会断开 ,变成 配对的设备不是已连接,是正常,使用时又会自动 连接 2 手机传…

解读若依微服务架构图:架构总览、核心模块解析、消息与任务处理、数据存储与缓存、监控与日志

文章目录 1. 引言2. 架构总览3. 核心模块解析3.1 服务注册与配置中心Nacos&#xff1a;微服务的中枢 3.2 网关层ruoyi-gateway&#xff1a;服务的统一入口 3.3 核心业务服务3.4 认证服务ruoyi-auth&#xff1a;认证与授权的守护者 3.5 异构服务整合Sidecar&#xff1a;连接异构…