1.环境搭建
下载:http://nginx.org/en/download.html
选择Stable version稳定版
Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版
2.配置
如果80端口被占,使用其他端口
新建两个站点127.0.0.1:8002和127.0.0.1:8001
修改nginx.conf
upstream Jq_one{ server 127.0.0.1:8002; server 127.0.0.1:8001; ip_hash; } location / { root html; index index.html index.htm; #其中jq_one 对应着upstream设置的集群名称 proxy_pass http://Jq_one; #设置主机头和客户端真实地址,以便服务器获取客户端真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
配置完成,重启nginx
访问:http://localhost:8585/
3.其他策略
proxy_connect_timeout 60s; #默认值60s, nginx连接到后端服务器的连接超时时间
proxy_timeout 10m; #默认值为10分钟,nginx接收后端服务器的响应超时时间
server 10.1.1.2 max_fails=1 fail_timeout=10s;
max_fails和fail_timeout参数是配合使用的,按默认值,当某台upstream server挂了,表示在10s(fail_timeout)之内,有1(max_fails)个请求打到这台挂了的服务器,nginx就会把这台upstream server设为down机的状态,时长是10s,在这10s内如果又有请求进来,就不会被转到这台server上,过了10s重新认为这台server又恢复了
4.遇到的问题
1.登陆服务器之后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs文件发现的确没有nginx.pid文件
[root@localhost sbin]# ./nginx -s reload
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决方法:
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
使用nginx -c的参数指定nginx.conf文件的位置
2.修改IP永久生效按以下方法
vi /etc/sysconfig/network-scripts/ifcfg-eth0(eth0,第一块网卡,如果是第二块则为eth1)
按如下修改ip
DEVICE=eth0(如果是第二块刚为eth1)
BOOTPROTO=static
IPADDR=192.168.0.11(改成要设置的IP)
NETMASK=255.255.255.0 (子网掩码)
GATEWAY=192.168.0.1(网关)
ONBOO=yes
然后
service network restart
IP地址生效,重启系统后不变
如果是临时修改IP重启系统后恢复原始IP则用以下命令
ifconfig IP地址 netmask 子网掩码