广告位联系
返回顶部
分享到

使用nginx正向代理实现访问外网

nginx 来源:互联网 作者:佚名 发布时间:2024-12-16 22:48:20 人浏览
摘要

需求1:某几个ip的代理 1 2 3 4 5 6 7 8 9 server { listen 9000; # 监听端口 server_name localhost; set $url proxy_server_doman_or_ip; # 设置代理的域名或IP变量,这里替换成自己需要代理的网站 location / { proxy_pass ht

需求1:某几个ip的代理

1

2

3

4

5

6

7

8

9

server {

         listen 9000;    # 监听端口

         server_name localhost;

         

        set $url "proxy_server_doman_or_ip";    # 设置代理的域名或IP变量,这里替换成自己需要代理的网站

         location / {

             proxy_pass http://$url:8082;    # 将请求转发到由 $url 变量表示的地址。

         }

    }

需求2:域名网站的代理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

server {

         listen 9000;    # 监听端口

         server_name localhost;

 

        # 设置DNS解析器的地址为8.8.8.8,并且设置了解析器的缓存时间为300秒(这样每隔300s就会重新解析一次)。ipv6=off 是关闭IPv6的解析支持。

        resolver 8.8.8.8 valid=300 ipv6=off;

        resolver_timeout 3s;    # 设置解析DNS的超时时间为3秒

         

        proxy_read_timeout 60s;

        proxy_send_timeout 60s;

        proxy_connect_timeout 60s;

         

        set $url "proxy_server_doman_or_ip";    # 设置代理的域名或IP变量,这里替换成自己需要代理的网站

         location / {

            proxy_pass http://$url:9000;    # 将请求转发到由 $url 变量表示的地址。9000是目标网站的端口。

             

            proxy_buffers 256 4K;        # 设置用于缓存后端响应的缓冲区大小为256个,每个大小为4K。

            proxy_max_temp_file_size 0;        # 设置Nginx暂存响应数据的最大临时文件大小为0,即不使用临时文件。

            proxy_cache_valid 200 302 1m;     # 针对状态码为200和302的响应,设置缓存有效期为1分钟。

            proxy_cache_valid 301 1h;        # 针对状态码为301的响应,设置缓存有效期为1小时。

            proxy_cache_valid any 1m;    # 对于其他任何响应状态码,设置缓存有效期为1分钟。

         }

    }

需求3:所有网站的代理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

server {

    # 服务器监听的端口号为8080

    listen                           8080;

  

    # 服务器名称为localhost

    server_name                      localhost;

  

    # 指定DNS服务器地址为114.114.114.114,禁用IPv6解析

    resolver                         114.114.114.114 ipv6=off;

  

    # 开启HTTP CONNECT方法支持,用于建立与后端服务器的TCP连接

    proxy_connect;

  

    # 允许通过代理的端口,这里允许443和80端口

    proxy_connect_allow              443 80;

  

    # 建立连接的超时时间为10秒

    proxy_connect_connect_timeout    10s;

  

    # 读取数据的超时时间为10秒

    proxy_connect_read_timeout       10s;

  

    location / {

        # 将请求转发到代理目标

        proxy_pass $scheme://$http_host$request_uri;

    }

代理验证:

1

curl -I https://blog.csdn.net/ -v -x 127.0.0.1:8080

如图 出现"HTTP/1.1 200 Connection Established" 表示代理服务器已经成功建立了连接

 安装nginx默认不支持https,需要额外添加模块ngx_http_proxy_connect_module。需确保模块和Nginx版本匹配。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#安装patch:

yum install patch -y

 

cd /root

wget http://nginx.org/download/nginx-1.20.2.tar.gz

 

#解压

tar xf nginx-1.20.2.tar.gz

  

#进入nginx目录

cd nginx-1.20.2/

  

#使用patch命令导入补丁 注意路径是否一致 我是直接在根目录操作的

patch -p1 < /root/ngx_http_proxy_connect_module-0.0.2/patch/proxy_connect_rewrite_1018.patch

下面安装nginx

1

2

3

4

5

6

7

8

#安装编译工具和库

yum install gcc cmake make cmake unzip ncurses-devel gcc gcc-c++ -y

  

#配置Nginx编译选项,使其在编译Nginx时包含ngx_http_proxy_connect_module-0.0.2模块

./configure --prefix=/usr/local/nginx --add-module=/root/ngx_http_proxy_connect_module-0.0.2

  

#编译和安装Nginx

make && make install

windows服务器代理配置

linux代理服务器设置

1

2

3

4

5

6

7

8

9

vi /etc/profile

  

#编辑/etc/profile文件 在最后一行加入

  

export http_proxy=192.168.0.97:8080

export https_proxy=192.168.0.97:8080

export ftp_proxy=192.168.0.97:8080

  

#192.168.0.97:8080 为你的代理服务器ip和端口

使用source命令使其生效

1

source /etc/profile


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计