在window与linux下配置nginx
最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar。不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,squid这类有反向代理功能的软件了。好在其设置都不是很麻烦。
本文就之前所做过的安装和配置步骤做一下总结分享出来,以免日后忘记了。
首先是windows系统,这里建议使用window 2003企业版,而不要作用win7(太新了,我遇到无法启动nginx的问题)。要说的是,在windows下配置安装nginx还是很容易的,少了linux下下载tar再配置编译参数等等步骤,我们只要从下面的地址下载相应的zip包(大约750kb)即可,地址如下:
需要说明的是这个下载包是nginx 0.8.21开发版,换句话说其只能用于搭建测试环境等用途的,不能用于实际的生产环境(受限于windows文件句柄数限制)。
下载并将该包中的文件解压到c盘上,为了配置使用方便,我将其解压后的文件夹名称从“nginx-0.8.19”改为"nginx”,这样我们只要将要负载均衡的站点在iis中设置好之后,将相应的链接地址放到nginx的相应配置文件中即可,这里我们打开C:\nginx\conf\nginx.conf文件,将下面的内容放到该文件的“server { ”上方行处:
upstream mylocalsite {
server 10.0.2.137:8088;
server 10.0.2.137:8089;
}
因为nginx无法运行动态脚本,所以这里要使用proxy_pass属性进行代理,所以找到该配置文件的如下内容:
location / {
root html;
index index.html index.htm;
}
修改其内容如下:
location / {
proxy_pass ;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr; ;#防止ajax安全请求问题
#proxy_set_header REMOTE-HOST $remote_addr; ;#防止ajax安全请求问题
}
修改完之后,还要修改一下server的侦听端口,原内容如下:
server {
listen 80;
server_name localhost;
……
修改完后的内容如下:
server {
listen 8086;
server_name 10.0.2.136;
……
这样,nginx就会在启动之后开始侦听本地IP(10.0.2.136)的8086端口请求,然后将其请求转向到mylocalsite 中所指定的两个iis站点,并将执行的结果转发给客户端。如果一切配置正确,这时可以运行 c:/nginx/nginx.exe (或在cmd下运行“start nginx”),就可以在任务管理器中看到一个nginx进程启动了。(注:如果配置文件有错误,可以到C:\nginx\logs\error.log查看错误日志,进一步排错)。
注: 关闭ngnix的命令: nginx -s stop
配置文件ngnix.conf正确性判断的命令: nginx -t
当然Nginx 负载均衡的功能也是很强的,并且其一般作为七层负载均衡(应用协议层)。下面就其upstream所支持的四个常用设置进行说明:
1)、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight :指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash :每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
按上面的说明,可以将之前我们的upstream做如下修改:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69540.html