免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6528 | 回复: 11
打印 上一主题 下一主题

[Web] Nginx 反向代理 [改进中....] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-27 15:16 |只看该作者 |倒序浏览

  1. <<nginx.conf设置>>
  2. #user  nobody;
  3. worker_processes  4;
  4. error_log  logs/error.log crit;
  5. pid        logs/nginx.pid;

  6. worker_rlimit_nofile 10240;

  7. events {
  8.     use epoll;
  9.     worker_connections  51200;
  10. }

  11. http {
  12.     include       mime.types;
  13.     default_type  application/octet-stream;

  14.     sendfile    on;
  15.     keepalive_timeout 65;
  16.     tcp_nodelay on;

  17.     # server pool
  18.     upstream bspfrontsvr {
  19.             server 10.10.10.224:80   weight=1;
  20.             server 10.10.10.221:80   weight=1;
  21.     }
  22.    
  23.     upstream bspimgsvr {
  24.             server 10.10.10.201:80   weight=1;
  25.     }
  26.    
  27.     upstream bspstylesvr {
  28.             server 10.10.10.202:80   weight=1;
  29.     }
  30.    
  31.     upstream bsphelpsvr {
  32.             server 10.10.10.204:80   weight=1;
  33.     }
  34.    
  35.     upstream bspwsisvr {
  36.             server 10.10.10.203:80   weight=1;
  37.     }
  38.    
  39.     upstream bspadminsvr {
  40.             server 10.10.10.222:80   weight=1;
  41.     }
  42.    
  43.     upstream bspbuyersvr {
  44.             server 10.10.10.223:80   weight=1;
  45.     }
  46.    
  47.     upstream bspsellersvr {
  48.             server 10.10.10.225:80   weight=1;
  49.     }

  50.     upstream  bsploginsvr  {
  51.             server 10.10.10.220:443  weight=1;
  52.     }

  53.     upstream  bspregistersvr  {
  54.             server 10.10.10.220:80  weight=1;
  55.     }

  56.     log_format  test_com  '$remote_addr - $remote_user [$time_local] "$request" '
  57.                              '$status $body_bytes_sent "$http_referer" "$http_user_agent" ';

  58.     #--------------------------------------------------------------------
  59.     #img.test.com
  60.     server {
  61.         listen       10.10.10.230:80;
  62.         server_name  img.test.com;

  63.         location / {
  64.                         proxy_pass      http://bspimgsvr;

  65.                         include         proxy_setting.conf;

  66.         }
  67.         access_log  logs/img.log  test_com;
  68.     }
  69.    
  70.     #style.test.com
  71.     server {
  72.         listen       10.10.10.230:80;
  73.         server_name  style.test.com;

  74.         location / {
  75.                         proxy_pass      http://bspstylesvr;

  76.                         include         proxy_setting.conf;
  77.         }
  78.         access_log  logs/style.log  test_com;
  79.     }
  80.    
  81.    
  82.     #help.test.com
  83.     server {
  84.         listen       10.10.10.230:80;
  85.         server_name  help.test.com;

  86.         location / {
  87.                         proxy_pass      http://bsphelpsvr;

  88.                         include         proxy_setting.conf;
  89.         }
  90.         access_log  logs/help.log  test_com;
  91.     }
  92.    
  93.    
  94.     #admin.test.com
  95.     server {
  96.         listen       10.10.10.230:80;
  97.         server_name  admin.test.com;

  98.         location / {
  99.                         proxy_pass      http://bspadminsvr;

  100.                         include         proxy_setting.conf;
  101.         }
  102.         access_log  logs/admin.log  test_com;
  103.     }
  104.    
  105.     #buyer.test.com
  106.     server {
  107.         listen       10.10.10.230:80;
  108.         server_name  buyer.test.com;

  109.         location / {
  110.                         proxy_pass      http://bspbuyersvr;

  111.                         include         proxy_setting.conf;
  112.         }
  113.         access_log  logs/buyer.log  test_com;
  114.     }
  115.    
  116.     #seller.test.com
  117.     server {
  118.         listen       10.10.10.230:80;
  119.         server_name  seller.test.com;

  120.         location / {
  121.                         proxy_pass      http://bspsellersvr;

  122.                         include         proxy_setting.conf;
  123.         }
  124.         access_log  logs/seller.log  test_com;
  125.     }

  126.     #wsi.test.com
  127.     server {
  128.         listen       10.10.10.230:80;
  129.         server_name  wsi.test.com;

  130.         location / {
  131.                         proxy_pass      http://bspwsisvr;

  132.                         include         proxy_setting.conf;
  133.         }
  134.         access_log  logs/wsi.log  test_com;
  135.     }

  136.     #www.test.com
  137.     server {
  138.         listen       10.10.10.230:80;
  139.         server_name  www.test.com   *.test.com;


  140.         location ~ ^/NginxStatus/ {
  141.             stub_status on;
  142.             access_log off;
  143.         }

  144.         location / {
  145.                         proxy_pass      http://bspfrontsvr;

  146.                         include         proxy_setting.conf;
  147.         }
  148.         access_log  logs/www.log  test_com;

  149.         error_page   500 502 503 504  /50x.html;
  150.         location = /50x.html {
  151.             root   html;
  152.         }
  153.     }  


  154.     #login.test.com
  155.     server {
  156.         listen       10.10.10.230:443;
  157.         server_name  login.test.com;

  158.         ssl                  on;
  159.         ssl_certificate      cert.pem;
  160.         ssl_certificate_key  cert.key;
  161.         ssl_session_timeout  5m;

  162.         ssl_protocols  SSLv2 SSLv3 TLSv1;
  163.         ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  164.         ssl_prefer_server_ciphers   on;

  165.         location / {
  166.                         proxy_pass        https://bsploginsvr;

  167.                         include         proxy_setting.conf;
  168.         }
  169.         access_log  logs/login.log  test_com;
  170.     }

  171.     #login.test.com for register
  172.     server {
  173.         listen       10.10.10.230:80;
  174.         server_name  login.test.com;

  175.         location / {
  176.                         proxy_pass        http://bspregistersvr;

  177.                         include         proxy_setting.conf;
  178.         }   
  179.         access_log  logs/register.log  test_com;
  180.     }  

  181.    
  182. }

  183. <<conf/proxy_setting.conf设置>>

  184.                         proxy_redirect          off;
  185.                         proxy_set_header        Host $host;
  186.                         proxy_set_header        X-Real-IP $remote_addr;
  187.                         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

  188.                         client_max_body_size    10m;
  189.                         client_body_buffer_size 128k;
  190.                         proxy_connect_timeout   90;
  191.                         proxy_send_timeout      90;
  192.                         proxy_read_timeout      90;
  193.                         proxy_buffer_size       4k;
  194.                         proxy_buffers           4 32k;
  195.                         proxy_busy_buffers_size 64k;
  196.                         proxy_temp_file_write_size 64k;

复制代码

[ 本帖最后由 xi2008wang 于 2008-10-14 11:50 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-27 17:05 |只看该作者
兄弟们, 给点意见呀

论坛徽章:
0
3 [报告]
发表于 2008-09-28 11:06 |只看该作者
这东西到底是WEB服务器还是负载均衡器,
还是有负载均衡功能的WEB服务器??
呵呵。。不要鄙视俺。。。

论坛徽章:
0
4 [报告]
发表于 2008-09-28 11:51 |只看该作者
原帖由 codecraft 于 2008-9-28 11:06 发表
这东西到底是WEB服务器还是负载均衡器,
还是有负载均衡功能的WEB服务器??
呵呵。。不要鄙视俺。。。

nginx既可以做web服务器, 也可以做负载均衡器

比如这里:
         location ~ ^/NginxStatus/ {
            stub_status on;
            access_log off;
         }
是web服务器, 访问http://www.test.com/Nginxstatus/ 是直接访问nginx, 没有将请求分发给后端


而这里
        location / {
                        proxy_pass      http://bspfrontsvr; //这条语句是关键
                        ..........
        }
这里是负载均衡器, 访问http://www.test.com时, 其实是请求会分发到后端http://bspfrontsvr
即http://10.10.10.224或http://10.10.10.221上

论坛徽章:
0
5 [报告]
发表于 2008-09-30 10:50 |只看该作者
最好贴一下自己的想法,意图,想达到什么效果等文字说明,光一个配置文件,实在难以给出意见

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
6 [报告]
发表于 2008-09-30 14:58 |只看该作者
nginx的性能怎么样?

论坛徽章:
0
7 [报告]
发表于 2008-10-05 18:11 |只看该作者
原帖由 coolerfeng 于 2008-9-30 10:50 发表
最好贴一下自己的想法,意图,想达到什么效果等文字说明,光一个配置文件,实在难以给出意见


我想把nginx作为一个负载均衡器, 但机器不多. 因此我用一台nginx主机为
img图片
style样式
help帮助
wsi WSI
www 前台
admin后台
buyer买家
seller卖家
register注册
login登录

等服务器(其实这些服务器有些也是在一台物理主机上)负载均衡.

论坛徽章:
0
8 [报告]
发表于 2008-11-15 23:40 |只看该作者
继续啊

论坛徽章:
0
9 [报告]
发表于 2008-11-18 00:11 |只看该作者
请问楼主,你TEST 过了没:

你文中的配置
login.test.com这一条应该是无法实现的吧

据我所测
upstream +proxy是无法支持https的


也就是proxy_pass        https://bsploginsvr;
这个无法执行,应该是用这个访问出来都是502 gateway timeout

不过我也不敢100%说我的配置是没有错误的

所以如果搂住是可以的话,我就需要向你请教了

论坛徽章:
0
10 [报告]
发表于 2008-11-18 00:20 |只看该作者
看到楼主的配置可行

又把配置试了一下:

发现还真就可以了
之前测试不可行的原因如下:

第一次:
upstream 中取名为为随便取一名字
但没有加443端口

后面使用proxy https

测试失败

后面测试是upstream取名为域名,有加端口
再测试proxy https://XX

还是失败

今天看了楼主的既然可行,那么再看我自己的配置,就想是不我我加了端口,但是我不可以用域名呢

把upstream的名字由域名改成随便不重复的变量,一试,果然可以

明天再继续TEST.不要空欢喜了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP