前言
Nginx 已极高的稳定性,超高的并发数成为了大厂的必备利器,以下介绍如何利用Nginx实现服务反向代理
反向代理:一个代理服务器可以代理外部网络主机访问内部网络,这类代理服务模式称之为反向代理服务
Nginx官方文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
Nginx 反向代理配置
upstream java_b {
ip_hash;
server 127.0.0.1:8080;
}
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/access.log main;
location / {
proxy_pass http://java_b/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
client_max_body_size 10m;
client_body_buffer_size 10m;
}
}
配置详解
upstream 模块:实现后端服务负载均衡、集群流量权重分配、长链接配置
server_name:匹配客户端请求后端服务的域名,注意:如果域名无法匹配上,nginx默认走第一个转发规则
proxy_pass :代理转发时服务
proxy_set_header:如果存在多级代理,需要设置,目的:保留原始请求头,可并将真实请求的头信息传递到服务器端
proxy_buffer_size:服务器一次接收的最大数据大小
proxy_buffering:用来控制是否打开后端响应内容的缓冲区,如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。 但是无论proxy_buffering是否开启,对proxy_buffer_size都是生效的。
client_body_buffer_size :处理客户端请求体buffer大小。用来处理POST提交数据,上传文件等。client_body_buffer_size 需要足够大来支持上传POST数据。