nginx的部署初级(上)
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每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。
url_hash 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
PS:这样可以轮询实现不同的IP服务器访问