Nginx 反向代理负载均衡
目的:搭建一台 nginx 转发服务器(A),把真实的服务器放到后面,真实服务器之间实现负载均衡(B、C)
- 安装
nginx 安装 -
简单配置转发服务器(default.conf)
upstream nginx { server 192.168.80.143 weight=1; #(B) server 192.168.80.144 weight=1; #(C) } server { listen 80; server_name localhost; #(A) charset utf-8; location / { proxy_pass http://nginx; } }
3.真实服务器项目部署吗,这个根据自身需求搭建
nginx-proxy 模块
详情可以看另一个例子
修改配置文件 vim nginx.confuser www www; worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; include /usr/local/nginx/conf/reverse-proxy.conf; sendfile on; keepalive_timeout 65; gzip on; client_max_body_size 50m; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户 client_body_buffer_size 256k; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(代理接收超时) proxy_send_timeout 300s; proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘 proxy_ignore_client_abort on; #不允许代理端主动关闭连接 server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
部分指令说明
proxy_pass http://192.168.10.10; //用于指定反向代理的服务器池 proxy_set_header Host $hoxt; //当后端web服务器也配置了多个虚拟主机时,需要用该header来区分反向代理哪个主机名 prox_set header X-Forwarded-For $remote_addr //如果后端web服务器上的程序需要获取用户ip,可以从该header头获取 proxy_set_header http_user_agent $http_user_agent; //判断访问端是苹果,安卓,win还是mac proxy_body_buffer_size //用于指定客户端请求主体缓冲区大小,可以理解为先保存到本地在传给用户 proxy_connect_timeout //表示与后端服务器连接的超时时间,即发起握手等候响应的超时时间 proxy_send_timeout //表示后端服务器的数据回传时间,即在规定的时间内后端服务器必须传完所有的数据,否则,nginx将断开这个连接 proxy_read_timeout //设置nginx从代理的后端服务器获取信息的时间,表示连接建立成功之后,nginx等待后端服务器的响应时间,其实nginx已经进入后端的排队之中等候处理 proxy_buffer_size //设置缓冲区大小,默认,该个、缓冲区大小等于指令proxy_buffers设置的大小 proxy_buffers //设置缓冲区的数量和大小。nginx从代理的后端服务器获取的响应信息,会保存到缓冲区 proxy_busy_buffers_size //用于设置系统忙碌时可以使用的proxy_buffers大小,官方推荐为proxy_buffers*2 proxy_tmep_file_write_size //指定proxy缓存临时文件的大小 proxy_next_upstream http_502 http_504 http_503 error timeout invalid_header; //请求出错后,转向下一个节点
nginx.conf 配置
main # 全局配置 events { # nginx工作模式配置 } http { # http设置 .... server { # 服务器主机配置 .... location { # 路由配置 .... } } upstream name { # 负载均衡配置 .... } }
说明:
main:用于进行nginx全局信息的配置
events:用于nginx工作模式的配置
http:用于进行http协议信息的一些配置
server:用于进行服务器访问信息的配置
location:用于进行访问路由的配置
upstream:用于进行负载均衡的配置
详情点击这里
转载于:https://blog.51cto.com/12384628/2146662