原文章地址:https://www.cnblogs.com/zhaobin-diray/p/10861195.html
使用nginx作为http/https正向代理
默认nginx是不支持https的正向代理的,要想通过nginx的正向代理,作为https服务器,需要增加一个模块并重新编译nginx。

环境:
centos 7

所需要的文件:
#https://github.com/chobits/ngx_http_proxy_connect_module
#http://nginx.org/packages/centos/7/SRPMS/nginx-1.12.2-1.el7_4.ngx.src.rpm

安装编译工具

#yum install gcc gcc-c++ make -y
#yum install rpm-build rpmdevtools -y
安装依赖

#yum install pcre-devel pcre -y
#yum install zlib-devel zlib -y
#yum install openssl-devel openssl -y
#yum install redhat-lsb-core -y
下载nginx源码、模块源码及rpm构建包

#cd /root

用于支持https代理的模块

#git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
或者直接去页面下载zip文件

下载后上传至/root目录下,并进行解压
#unzip ngx_http_proxy_connect_module-master.zip

rpm构建及nginx源码

#wget http://nginx.org/packages/centos/7/SRPMS/nginx-1.12.2-1.el7_4.ngx.src.rpm
修改nginx的src rpm包,增加ngx_http_proxy_connect_module模块

初始化rpmbuild目录

#cd /root
#rpmdev-setuptree 执行生成目录

#cp /root/nginx-1.12.2-1.el7_4.ngx.src.rpm /root/rpmbuild/SOURCES/
#cd /root/rpmbuild/SOURCES/
#rpm2cpio nginx-1.12.2-1.el7_4.ngx.src.rpm |cpio -dvi
#rm /root/rpmbuild/SOURCES/nginx-1.12.2-1.el7_4.ngx.src.rpm
#tar -xf nginx-1.12.2.tar.gz
#cd /root/rpmbuild/SOURCES/nginx-1.12.2

针对不同nginx版本,需要用不同的path文件,详见该项目github首页

#patch -p1 < /rootngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite.patch
#cd /root/rpmbuild/SOURCES/
#tar -czvf nginx-1.12.2.tar.gz nginx-1.12.2
修改nginx.spec文件,增加模块的编译选项

将nginx.spec中的configure命令中,增加–add-module=/root/ngx_http_proxy_connect_module-master选项。

修改后的命令:

%build
./configure %{BASE_CONFIGURE_ARGS}
–add-module=/root/ngx_http_proxy_connect_module-master
–with-cc-opt="%{WITH_CC_OPT}"
–with-ld-opt="%{WITH_LD_OPT}"
–with-debug
make %{?_smp_mflags}
%{__mv} %{bdir}/objs/nginx
%{bdir}/objs/nginx-debug
./configure %{BASE_CONFIGURE_ARGS}
–add-module=/root/ngx_http_proxy_connect_module-master
–with-cc-opt="%{WITH_CC_OPT}"
–with-ld-opt="%{WITH_LD_OPT}"
make %{?_smp_mflags}

编译rpm包

#rpmbuild -bb nginx.spec
rpm包,在/root/rpmbuild/RPMS路径下。
#cd /root/rpmbuild/RPMS
#rpm -ivh nginx-1.12.2-1.el6.ngx.x86_64.rpm
#rpm -ivh nginx-debuginfo-1.12.2-1.el6.ngx.x86_64.rpm
修改nginx配置文件

基本的http代理,配置文件/etc/nginx/conf.d/default.conf如下。为了适配https,我们需要增加connect语句相关的配置。

简单的http代理,配置文件

server {
resolver 114.114.114.114;
listen 9999;
access_log /var/log/nginx/http_proxy.access.log main;
error_log /var/log/nginx/http_proxy.error.log;

location / {proxy_pass $scheme://$http_host$request_uri;
}

}
#https/http代理配置文件

server {
resolver 114.114.114.114;
listen 9999;

proxy_connect;
proxy_connect_allow            443 563;
proxy_connect_connect_timeout  10s;
proxy_connect_read_timeout     10s;
proxy_connect_send_timeout     10s;access_log /var/log/nginx/http_proxy.access.log main;
error_log /var/log/nginx/http_proxy.error.log;location / {proxy_pass $scheme://$http_host$request_uri;
}

}
#nginx -t 检查配置文件是否正确
#启动即可

(二)nginx正向代理https相关推荐

  1. nginx正向代理https

    nginx正向代理https 需求 当出现下述情形时,我们需要使用正向代理: 我们的client不能直接访问到服务器,倒是其他的client可以访问,且我们的client到OtherClient 的网 ...

  2. nginx 正向代理https配置

    1.需求描述 nginx正向代理 如图所示,公司内网为了安全考虑,只提供一台服务器可与外网作为网关,进行访问. 1.服务器A可以访问外网: 2.服务器B,C无法访问外网: 3.服务器ABC之间内网互通 ...

  3. nginx正向代理http,nginx正向代理https

    配置准备 正向代理,指的是通过代理服务器 代理浏览器/客户端去重定向请求访问到目标服务器 的一种代理服务. 正向代理服务的特点是代理服务器 代理的对象是浏览器/客户端,也就是对于目标服务器 来说浏览器 ...

  4. Nginx正向代理https请求

    默认开源版本的nginx是不支持代理https请求的,如果要实现这个功能,需要第三方模块 https://github.com/chobits/ngx_http_proxy_connect_modul ...

  5. nginx正向代理https,zabbix内网实现企业微信告警

    1.首先给nginx添加模块ngx_http_proxy_connect_module模块主要用于隧道SSL请求的代理服务器 模块下载地址: https://github.com/chobits/ng ...

  6. nginx正向代理转发https出现502

    nginx正向代理转发https出现502 现象1 原因1 解决方案1 参考博客1 现象2 原因2 解决方案2 参考博客2 其他原因 现象1 nginx的error日志显示如下(xxx是替换过了真实信 ...

  7. Linux:Nginx 正向代理实现内网访问互联网

    前言: 因为公司的某些系统需要访问互联网上的某些功能,每个系统的服务器都开通访问互联网的能力太麻烦并且不方便管理,所以打算只对一台服务器开通访问互联网的能力,并在此服务器基础上搭建 nginx 正向代 ...

  8. nginx正向代理的配置和使用

    nginx正向代理的配置和使用 nginx正向代理的配置和使用 nginx正向代理的配置和使用 安装包准备 下载nginx安装包 下载正向代理模块的包 版本与模块对照表 部署nginx服务 上传ngi ...

  9. nginx 正向代理http和https

    nginx正向代理默认只支持http,不支持https,需借助第三方模块"ngx_http_proxy_connect_module"来实现(https://github.com/ ...

最新文章

  1. Nature:大脑佛一点,活得久一点,这是哈佛医学院的最新研究
  2. python浪漫代码-使用Python代码的程序员也浪漫
  3. 7.测试hadoop安装成功与否,并跑mapreduce实例
  4. oracle并行parallel update两张表_Oracle与并行性 parallel
  5. 诗和远方:无题(四十六)
  6. 小米蓝牙左右互联_小米真无线蓝牙耳机Air2评测:支持弹窗动画,半入耳设计全面升级...
  7. VMware vCenter Server 的内部版本号和版本 (2143838)
  8. 从虚拟主机时代说起,详述Kubernetes带来的变革
  9. 一个简单的空间配置器
  10. 基于SharePoint 2010的控制台应用程序常见问题
  11. ShuffleNet算法详解
  12. 十二个“一”---十二位胜似亲人的悲情向团体详解
  13. cnpm : 无法加载文件 C:\Users\zsl\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本
  14. u大师u盘装系统win7_黑鲨U盘重装win7系统教程
  15. win10下Google Chrome 打不开网页的解决方案
  16. 一文教你玩转Mybatis,超详细代码讲解与实战
  17. CSS list-style属性控制li标签样式
  18. “不能read和written”的关键因素—内存
  19. CAD中用lisp程序实现批量偏移_AutoCAD如何批量偏移
  20. JavaWeb购物车项目二

热门文章

  1. nas网络存储服务器性能要求,NAS系统的优缺点全面介绍
  2. 谷歌公布13GB 3D扫描数据集:17大类、1030个家用物品
  3. 统计系列(二)常见的概率分布
  4. 7-40 奥运排行榜(25 分)
  5. Azureus Vuze v5.7.2.0官方中文版
  6. 华科计算机电路理论实验报告,华科计算机数电第四次实验报告.docx
  7. 28款静态网站快速搭建生成器
  8. VPP调试trace显示
  9. ubuntu18.04安装搜狗拼音输入法
  10. 使用SpringBoot的CommandLineRunner遇到的坑