linux内网使用nginx代理上外网

内网服务器linux不能上百度,通过个人电脑(win10)搭建代理服务器给内网

 

首先PC上装nginx,我下载的版本是nginx-1.18.0,使用cmd启动。然后在任务管理器上就能看到nginx进程了

start .\nginx.exe

关闭nginx的话在任务管理器上杀进程是没用的,会再被拉起来。还是要用命令关闭

.\nginx.exe -s stop

主要在于nginx配置上,修改nginx.conf

这个是配置http请求的

server {
        listen       8080;
		resolver 8.8.8.8;#dns的服务器地址

        location / {
			proxy_pass http://$http_host$request_uri;
            root   html;
            index  index.html index.htm;
        }
}

修改/etc/profile文件,在最下面增加

export http_proxy=http://10.20.80.18:8080

然后source /etc/profile

 

配置https网上看了很多写法,有很多是带了proxy_connect_allow的参数来实现的,看上去很方便

但是我配置proxy_connect_allow和proxy_connect_timeout之后提示指令并不支持

在看了https://blog.csdn.net/luchenh/article/details/107553493这个之后才发现,proxy_connect原本是一个补丁,nginx本身是不带有的。而如果想要打补丁需要从源码进行编译。对于windows来讲很困难

 

但是nginx是不支持https的正向代理的,解决的方法目前网上看到只有使用proxy_connect的补丁

所以尝试windows上从源码编译带connect的nginx

 

在windows上从源码编译nginx参考https://www.cnblogs.com/iamyuxing/p/10883626.html

如何将proxy_connect的patch打到源码中参考https://blog.csdn.net/luchenh/article/details/107553493

根据这两篇文章可以尝试在windows上把proxy connect模块编译出来

 

我是在win10虚拟机上搞的,首先下载了vs2015,MSYS2

nginx源码(官网上可以下载到,我选的版本是1.18)

ngx_http_proxy_connect_modulehttps://github.com/chobits/ngx_http_proxy_connect_module

相关用到的库下载https://github.com/tjliupeng/nginx-build-windows/tree/master/objs/lib,放到源码的objs下面

 

使用MSYS2配置configure,然后nmake生成nginx.exe

中间需要打patch的地方我换到了linux服务器上来做,在MSYS2上不能使用patch命令

 

不过最后还是没成功代理https,没办法我不用nginx改用apache httpd代理,这个代理用起来比较简单

 

Guess you like

Origin blog.csdn.net/songduo22/article/details/113567686