nginx的部署初级(上)

jopen 9年前

  Nginx出了可以作为一般的web服务器给出访问到的数据外,还可以通过配置的反向代理方式让用户访问网站:

下面根据场景应用进行nginx的反向代理进行运用

1.公司内部大部分项目都部署在192.168.1.100服务器上,项目组成员习惯性的把所有指定的域名通过host指向该服务器(否则要互相告诉对应的内网IP,另外一种解决方式是搭建内网DNS

  于是可以通过反向代理转发的方式,来解决这个问题。

  在http模块里添加:

 upstream www.junheng.com {

         server 192.168.1.106:100

          }

 然后在添加一个server

server

    {

        listen 80;

        server_name www.junheng.com;

       location / {

        proxy_pass http://www.junheng.com;

        proxy_set_header Host $host;

         proxy_set_header X-Real-IP $remote_addr;

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             }

    }

这样就将内网上192.168.1.106:100上的通过了192.168.1.100:80显示出来,俩个优点:一个是将另外一个服务器的非80转换成了标准的80端口,数据交换极大的方便 第二个是统一了入口IP(如果对内网有限定访问要求,只限定那台电脑即可)

PS:KX上网访问网站的很快就能利用到这点,在一台可以访问到外国站点的虚拟机(同时自己可以登录的虚拟机上)上设置一个反向代理,然后绑定一个域名,然后在本地用host指定访问域名,这样就完成了KX上网功能。

2.网站访问量比较大,网站需要不同的服务器进行分流处理(一般服务器访问量大的时候,都会遇到这个问题) 这个时候需要对不同的服务器进行轮询查

 有五种方式分配策略

 策略分配的样本如下:

upstream www.junheng.com {

         ip_hash;

         server 192.168.1.106:100  weight=1

         server 192.168.1.105:80  weight=2 

          }

 Weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

 ip_hash每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。

url_hash 按访问urlhash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 

PS:这样可以轮询实现不同的IP服务器访问


来自: http://my.oschina.net/xiongyuanliang/blog/603489