nginx配置https正向代理

适用场景:

因网络访问权限限制,局域网内仅有1台电脑可以上外网;内网其他机器如果需要访问外网,需要通过该电脑进行代理访问。
本文分别介绍如何在windows,linux上如何配置nginx正向代理。

nginx配置https正向代理(Linux)

安装nginx依赖包

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载nginx

mkdir /app
cd /app
tar -xzf nginx-1.23.3.tar.gz
cd nginx-1.23.3

编译安装nginx

./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-threads \
--with-stream \
--with-stream_ssl_preread_module \
--with-stream_ssl_module

make
make install 

配置nginx

stream {
    resolver 114.114.114.114;
    server {
        listen 443;
        ssl_preread on;
        proxy_connect_timeout 5s;
        proxy_pass $ssl_preread_server_name:$server_port;
    }
}

客户端配置域名

C:\Windows\System32\drivers\etc\hosts

# https://mail.sina.com.cn
192.168.0.112 mail.sina.com.cn

小结

经验证,此方案可行,但需要操作系统为linux服务器。


nginx配置https正向代理(Windows)

OpenResty介绍

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。
用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

openresty 下载地址
http://openresty.org/cn/download.html

验证nginx模块

openresty-1.21.4.1-win64>nginx -V
nginx version: openresty/1.21.4.1
built by gcc 7.3.0 (Rev1, Built by MSYS2 project)
built with OpenSSL 1.1.1n  15 Mar 2022
TLS SNI support enabled
configure arguments: --prefix=. --with-cc-opt='-O2 -DFD_SETSIZE=1024' --add-module=../ngx_devel_kit-0.3.1 --add-module=../echo-nginx-module-0.62 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.33 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.09 --add-module=../srcache-nginx-module-0.32 --add-module=../ngx_lua-0.10.21 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.9 --add-module=../ngx_stream_lua-0.0.11 --with-cc=gcc --sbin-path=nginx.exe --with-pcre-jit --with-ipv6 --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-http_random_index_module --with-http_gzip_static_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-select_module --with-pcre=/home/agentzh/work/openresty-1.21.4.1/objs/lib/pcre-8.44 --with-zlib=/home/agentzh/work/openresty-1.21.4.1/objs/lib/zlib-1.2.12 --with-openssl=/home/agentzh/work/openresty-1.21.4.1/objs/lib/openssl-1.1.1n --with-openssl-opt=-g --with-pcre-opt=-g --with-zlib-opt=-g --with-stream --with-http_ssl_module

配置nginx模块(域名,端口相同)

stream {
    resolver 114.114.114.114;
    server {
        listen 443;
        ssl_preread on;
        proxy_connect_timeout 5s;
        proxy_pass $ssl_preread_server_name:$server_port;
    }
}

客户端配置域名解析

C:\Windows\System32\drivers\etc\hosts

# 配置代理
192.168.0.112 mail.sina.com.cn

验证接口请求

curl https://mail.sina.com.cn -sv
*   Trying 192.168.0.112:443...
* Connected to mail.sina.com.cn (192.168.0.112) port 443 (#0)
* schannel: disabled automatic use of client certificate
* ALPN: offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
> GET / HTTP/1.1
> Host: mail.sina.com.cn
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 302 Found
< Server: nginx
< Date: Sat, 15 Apr 2023 00:42:08 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Location: https://mail.sina.cn?vt=4
< DPOOL_HEADER: mail-sina-com-cn-new-7b87565769-pwxvr
< X-Via-SSL: ssl.37.sinag1.bx.lb.sinanode.com
<
* Connection #0 to host mail.sina.com.cn left intact

小结

经验证,操作系统为windows时可以满足要求。

你可能感兴趣的:(nginx,nginx,linux,windows)