Nginx代理服务

正向代理和反向代理的区别:
正向代理代理的对象是客户端,如翻墙
反向代理代理的对象是服务端,客户端访问代理,代理根据情况连接到不同的服务器,客户端不关心请求到的是哪一台服务器

代理配置语法:

# 可以配置在location,if in location,limit_except
# URL表示当请求到达此处时,服务器去请求对应的url,支持https和http
proxy_pass URL;

# 以下配置都在http,server,location中:

# 缓存区,如果打开,Nginx将尽可能将所有请求头信息收集完,减少IO损耗,默认存在硬盘中,默认打开
proxy_buffering on|off

# 跳转重定向
proxy_redirect default|off|replacement;

# 头信息
proxy_set_header field value;
# 默认:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

# 超时,默认60s
proxy_connect_timeout time
  • 如果是反向代理,此时访问相应的路径就会有服务器自动访问到指定的URL。例如当服务器的某个端口不允许直接访问,只允许当前某个特定的服务器进行访问。此时客户端应该访问这个特定的服务器,由这个服务器通过代理访问到目标端口内容。
  • 如果是正向代理,服务器中相应的location设置了只允许特定服务器进行访问,此时客户端需要先连接到特定服务器,特定服务器配置了根据输入的URL访问该URL,从而实现访问特定的locaiton。

配置示例

location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect default;
        
        # 当前ip
        proxy_set_header Host $http_host;
        # 获取真实ip
        proxy_set_header X-Real-IP $remote_addr

        # 单位秒
        proxy_connect_timeout 30;
        proxy_send_timeout 60;
        proxy_read_timeout 60;

        # 默认缓冲区头信息大小
        proxy_buffer_size 32k;
        proxy_buffering on;
        # 设置对应buffer数量和大小
        proxy_buffers 4 128k;
        proxy_busy_buffers_size 256k;
        # 当缓冲区满了之后,临时文件最大大小
        proxy_max_temp_file_size 256k;
}