nginx实现反向代理

很早就知道nginx具有强悍的高并发高负载的处理能力,当然也常用作代理服务器,将不适合nginx处理的请求转发给Apache或者Tomcat等其他服务器处理。如何将nginx作为代理服务器?

nginx服务的安装不再赘述,见上一篇博文 centos源码安装nginx


1、在nginx的配置文件nginx.conf的http模块中配置upstream

upstream yesuhuangsi {
                server 10.210.241.45:8080 weight=5;
                server 10.209.79.75:8080 weight=1;
        }  

server指定的服务器不支持域名+hosts的形式;

weight表示该服务器的转发权重,默认为1,权重越大,请求的概率越大;

fail_timeout与max_fails配合使用,表示fail_timeout时间段内,若转发失败的次数超过max_fails,则认为该服务器暂不可用,用于优化反向代理功能,max_fails默认1,设置为0表示不检查失败次数,fail_timeout默认为10s;

down表示所在的服务器永久下线,只有在使用ip_hash配置项时才有效;

backup表示所在服务器是备份服务器,只有在所有非备份服务器都失效时,才会向所在的服务器转发请求,在使用ip_hash配置项时无效;



2、配置server


server {
       listen 80; 
       root /data1/;
       server_name yesuhuangsi.com;
       access_log  /data1/www/logs/yesuhuangsi.com-access_log  main;
       error_log   /data1/www/logs/yesuhuangsi.com-error_log;
       location / { 
             proxy_pass http://yesuhuangsi;
       }   
}


当请求 yesuhuangsi.com时,代理服务器就会根据权重将请求转发到设置的45:8080和75:8080两台服务器上




如果日志中需要记录请求的真实域名和ip,则需要在设置proxy_pass时,同时设置


      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header REMOTE-HOST $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值