nginx 网络代理

正向代理

正向代理代理的是客户端。比如:梯子,翻墙。

nginx 配置

1
2
3
4
5
6
7
server {
listen 80;
server_name 192.168.184.128;
location /proxy_baidu/ {
proxy_pass http://baidu.com/;
}
}

反向代理 (负载均衡)

参考

反向代理代理的是 服务器 ,主要用于处理高并发,代理的是多个服务器(**负载均衡**)。实现方式是端口映射。通过一个端口,可以由 nginx 代理到 其他端口上。__可以透明的修改请求、响应。

nginx 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
upstream tomcatcluster{
#ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8081; #weight=2
}
server {
listen 8090;
server_name localhost;
location / {
# 修改headers
proxy_set_header name xiaoba;
proxy_pass http://tomcatcluster;
}

一共有 4 种负载均衡策略:

  • 轮询:默认方式。
  • weight:在轮询基础上增加权重,也就是轮询到的几率不同。
  • ip_hash:按照 ip 的 hash 分配,保证每个访客的请求固定访问一个服务器,解决 session 问题
  • fair:按照响应时间来分配,这个需要安装 nginx-upstream-fair 插件。

内网穿透

nginx 的反向代理可以做到。说人话就是,使外网可以访问到内网(局域网)的资源。我们个人电脑都是在局域网中,外网通过 ip 是访问不到的,做了内网穿透后,就可以通过外网(因特网)访问内网了。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!