您的位置:首页 > 运维架构 > 反向代理

nginx配置反向代理示例

2016-09-10 15:51 274 查看

1.环境说明

我这边是在一台window机器上同时启动3台服务,服务器说明如下:

nginx:localhost:9090

tomcat1:localhost:8080

tomcat2:localhost:8081

在两台tomcat的目录tomcat/webapps下,分别部署ngnix-sever.war包。但war包里的index.jsp内容不一样

一台index.jsp的内容如下:



另外一台index.jsp的内容如下:



2.nginx配置文件

#负责压缩数据流
gzip              on;
gzip_min_length   1000;
gzip_types        text/plain text/css application/x-javascript;

#设定负载均衡的服务器列表
#weigth参数表示权值,权值越高被分配到的几率越大
upstream nginx-server {
server localhost:8080 weight=1;
server localhost:8081 weight=1;
}

server {
#侦听的80端口
listen       80;
server_name  localhost;
#设定查看Nginx状态的地址
location /nginxstatus{
stub_status on;
access_log on;
auth_basic "nginxstatus";
auth_basic_user_file htpasswd;
}
#匹配以jsp结尾的,tomcat的网页文件是以jsp结尾
location / {
index index.jsp;
proxy_pass   http://nginx-server; #在这里设置一个代理,和upstream的名字一样

#以下是一些反向代理的配置可删除
proxy_redirect             off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header           Host $host;
proxy_set_header           X-Real-IP $remote_addr;
proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size       10m;
#允许客户端请求的最大单文件字节数
client_body_buffer_size    128k;
#缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout      300;
#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout         300;
#后端服务器数据回传时间(代理发送超时)
proxy_read_timeout         300;
#连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size          4k;
#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers              4 32k;
#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size    64k;
#高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
#定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}


3.启动nginx并访问

访问:http://localhost:9090/ngnix-server/

来回刷新页面,可以看到始终是如下两个页面来回切换:

页面1:



页面2:



后记

这说明nginx作为代理服务器,根据某种算法,随机的访问两台web服务器,这样就在大量client访问网站的时候,减轻了server端的压力,达到了负载均衡的效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx