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