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

 更新时间:2024年12月15日 08:41:17   作者:JackGIS  
这篇文章主要介绍了使用nginx正向代理实现让内网主机通过外网主机访问外网,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

需求1:某几个ip的代理

server {
         listen 9000;    # 监听端口
         server_name localhost;
        
        set $url "proxy_server_doman_or_ip";    # 设置代理的域名或IP变量,这里替换成自己需要代理的网站
         location / {
             proxy_pass http://$url:8082;    # 将请求转发到由 $url 变量表示的地址。
         }
    }

需求2:域名网站的代理

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:所有网站的代理

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;
    }

代理验证:

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版本匹配。

#安装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

#安装编译工具和库 
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代理服务器设置

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命令使其生效

source /etc/profile

到此这篇关于使用nginx正向代理实现访问外网的文章就介绍到这了,更多相关nginx正向代理访问外网内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx在胖容器中的部署流程

    Nginx在胖容器中的部署流程

    胖容器(Fat Container)是一种容器技术的形态,它在传统的轻量级容器基础上进行了扩展和增强,Nginx是一款高性能的HTTP和反向代理web服务器,本文将给大家介绍Nginx在胖容器中的部署流程,需要的朋友可以参考下
    2024-04-04
  • NGINX阻止指定ip的请求问题及解决方案

    NGINX阻止指定ip的请求问题及解决方案

    web页面做了一个功能,在websocket请求失败的情况,会定时向服务端进行重试进行建立连接,这篇文章给大家介绍NGINX阻止指定ip的请求问题及解决方案,感兴趣的朋友一起看看吧
    2024-02-02
  • nginx实现根据URL转发请求的实战经历

    nginx实现根据URL转发请求的实战经历

    这篇文章主要给大家介绍了一次关于nginx实现根据URL转发请求的实战经历,文中通过示例代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • Nginx Rewrite使用场景及配置方法解析

    Nginx Rewrite使用场景及配置方法解析

    这篇文章主要介绍了Nginx Rewrite使用场景及配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • nginx开启gzip压缩的完整步骤记录

    nginx开启gzip压缩的完整步骤记录

    Nginx开启Gzip压缩功能,可以使网站的css、js 、xml、html文件在传输时进行压缩,提高访问速度,进而优化Nginx性能,下面这篇文章主要给大家介绍了关于nginx开启gzip压缩的相关资料,需要的朋友可以参考下
    2022-01-01
  • nginx缓存不起作用问题解决方法

    nginx缓存不起作用问题解决方法

    nginx代理做好了,缓存也配置好了,但是发现css、js、jpg这些静态文件统统都cached成功。但是偏偏页面文件依旧到源服务器取
    2014-04-04
  • 关于nginx proxy_set部分常见配置

    关于nginx proxy_set部分常见配置

    这篇文章主要介绍了关于nginx proxy_set部分常见配置,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 权限问题导致Nginx 403 Forbidden错误的解决方法

    权限问题导致Nginx 403 Forbidden错误的解决方法

    这篇文章主要介绍了权限问题导致Nginx 403 Forbidden错误的解决方法,本文中导致 403 Forbidden错误的原因是配置文件中没有指明一个用户,需要的朋友可以参考下
    2014-08-08
  • Nginx使用反向代理实现负载均衡过程解析

    Nginx使用反向代理实现负载均衡过程解析

    这篇文章主要介绍了Nginx使用反向代理实现负载均衡过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Nginx反向代理后端服务的操作步骤

    Nginx反向代理后端服务的操作步骤

    反向代理是一种代理服务器,位于客户端与服务器之间,后端服务器处理请求后将响应发送回反向代理服务器,反向代理服务器再将响应返回给客户端,本文将详细介绍Nginx如何反向代理后端服务,涵盖其基本概念、配置方法、负载均衡、SSL/TLS支持等多个方面,需要的朋友可以参考下
    2024-06-06

最新评论