代理、转发
正向代理,代理客户端,例如 vpn。
正向代理模式 | Nginx 配置模块 |
---|---|
http(不支持 https) | http_proxy |
反向代理,代理服务端,例如 Nginx 分发流量。
反向代理模式 | Nginx 配置模块 |
---|---|
http、websocket、https | ngx_http_proxy_module |
fastcgi | ngx_http_fastcgi_module |
uwsgi | ngx_http_uwsgi_module |
grpc | ngx_http_v2_module |
Nginx可支持的代理协议: HTTP、Websocket(基于http1.1,实现客户端与服务端之间长链接)、GRPC(远程过程调用)、ICMP\POP\IMAP(邮件收发)、HTTPS、RTMP(流媒体)。
相同的模块,既可以做成正向代理,也可以做成反向代理。
配置
proxy_pass,转发
配置语法:
Syntax: proxy_pass
Default: -
Context: location,if in location, limit_except
正向代理示例:
server{
listen 80;
...
location ~ /test_proxy.html$ {
proxy_pass http://xxxx:80;
// 如果访问此 location,转发到 http://xxxx:80。
// 加入服务端禁用了客户端的 IP,可以通过这种配置方式,通过代理去访问服务端,实现间接访问的功能。
}
}
反向代理示例:
假如服务器只开放一个 80 端口。外网要访问 8080 端口服务。可以通过这种方式转发
server{
listen 80;
...
location ~ /test_proxy.html$ {
proxy_pass http://127.0.0.1:8080;
// 如果访问此 location,转发到 http://127.0.0.1:8080。
}
}
proxy_buffering,缓冲区,减少 I/O 损耗。
配置语法:
Syntax: proxy_buffering on|off;
Default: proxy_buffering on;
Context: http, server, location
proxy_redirect,跳转重定向
配置语法:
Syntax: proxy_redirect default; proxy_redirect off; proxy_redirect redirect replacement;
Default: proxy_redirect default;
Context: http, server, location
网友评论