100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > (二)nginx正向代理https

(二)nginx正向代理https

时间:2020-06-24 20:45:08

相关推荐

(二)nginx正向代理https

原文章地址:/zhaobin-diray/p/10861195.html

使用nginx作为http/https正向代理

默认nginx是不支持https的正向代理的,要想通过nginx的正向代理,作为https服务器,需要增加一个模块并重新编译nginx。

环境:

centos 7

所需要的文件:

#/chobits/ngx_http_proxy_connect_module

#/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 /chobits/ngx_http_proxy_connect_module.git

或者直接去页面下载zip文件

下载后上传至/root目录下,并进行解压

#unzip ngx_http_proxy_connect_module-master.zip

rpm构建及nginx源码

#wget /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_timeout10s;proxy_connect_send_timeout10s;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 检查配置文件是否正确

#启动即可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。