使用nginx搭建http代理服务器,跳过公司网络,畅听酷狗

本文介绍了如何使用nginx的ngx_http_proxy_connect_module模块搭建正向代理服务器,包括下载、编译、配置及解决常见错误的过程,同时指导了如何在云平台和服务器上设置端口开放以确保代理功能正常工作。
摘要由CSDN通过智能技术生成

使用的是正向代理,访问代理服务器,由代理服务器向目标发起请求

	使用的是nginx来搭建代理,需要用到一个模块 ngx_http_proxy_connect_module
	该模块,应该算是一个第三方的,需要自行下载安装,

我是源码编译安装

  1. 下载 ngx_http_proxy_connect_module 源码,
    这个需要在github上下载,地址是:https://github.com/chobits/ngx_http_proxy_connect_module
    可以直接下载,然后传到服务器中,里面有nginx的很多版本的模块,git下载,怎么样都可以在这里插入图片描述

  2. 安装nginx
    我是已经安装过了,现在相当于是只需要加个扩展

    将模块整个文件和 nginx源码包下载到 /usr/local/src 目录中,解压,最后是这个样子
    在这里插入图片描述
    已经安装过的,需要将nginx停止,备份启动文件,
    进入到安装目录的sbin文件
    ./nginx -s stop
    cp nginx nginx.back

cd nginx-1.24.0/
#很关键的一步,需要使用对应版本的模块,
#出现报错,大概率是版本错误,重新选择版本,为保险需要删除nginx,重新解压一份
patch -p1 < ../ngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite_102101.patch
#进行  configure 检查,自己加上自己的配置项,最后加上 模块源码包的地址根目录
./configure --add-module=/usr/local/src/ngx_http_proxy_connect_module-master
#编译
make

如果在make 的时候出现:src/http/ngx_http_request.h:47: error: “NGX_HTTP_CONNECT” redefined [-Werror] 的错误,也是模块的版本不对,删除nginx,重新更改模块版本

因为我是安装扩展,所以不需要 make install ,直接将当前目录objs中的 nginx 文件,复制替换到安装路径的sbin文件中就可以了,

3. 配置nginx
编辑nginx 的配置文件 nginx.config
将以下server代码添加到http中,

 server {
        listen                         自己喜欢的端口;

        # dns resolver used by forward proxying
        resolver                       8.8.8.8;

        # forward proxy for CONNECT request
        proxy_connect;
        proxy_connect_allow            443 563;
        proxy_connect_connect_timeout  10s;
        proxy_connect_read_timeout     10s;
        proxy_connect_send_timeout     10s;

        # forward proxy for non-CONNECT request
        location / {
            proxy_pass http://$host;
            proxy_set_header Host $host;
        }`在这里插入代码片`
    }

然后保存,启动nginx 就可以了
然后需要将配置的端口号,进行开放,在云平台安全组进行开放,还需要在服务器开放,具体的端口开发,自行查找吧,服务器不一样,命令也不相同

我的:
	firewall-cmd --list-ports  #查看端口开放情况
	netstat -tuln:查看端口占用情况
	firewall-cmd --add-port=80/tcp --permanent  #开放端口
	firewall-cmd --reload  #重启生效

查看端口是否被监听: netstat -tnlp | grep 8081
进行测试


curl --proxy 127.0.0.1:8081 https://www.baidu.com
curl --proxy 127.0.0.1:8081 http://www.baidu.com

如果都能访问,就代表已经搭建好了
如果https,不能访问,或者时而好时而不好,可以上面的配置文件中的resolver 替换为:resolver 221.228.255.1 114.114.114.114 valid=5 ipv6=off;就可以了

最终测试 curl --proxy 公网ip:8081 https://www.baidu.com,可以的话,就一点问题都不会有了

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值