Linux下Nginx+Tomcat负载均衡和动静分离配置要点
本文使用的Linux发行版:CentOS6.7 下载地址
一、安装Nginx
下载源:
1 | wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm |
安装源:
1 | yum install nginx-release-centos-6-0.el6.ngx.noarch.rpm |
安装Nginx:
1 | yum install nginx |
启动Nginx服务:
1 | service nginx start |
停止Nginx服务:
1 | service nginx stop |
重启Nginx服务:
1 | service nginx restart |
查看Nginx运行状态:
1 | service nginx status |
检查Nginx配置文件:
1 | nginx -t |
服务运行中重新加载配置:
1 | nginx -s reload |
添加Nginx服务自启动:
1 | chkconfig nginx on |
二、修改防火墙规则
修改Nginx所在主机的防火墙配置:vi /etc/sysconfig/iptables
,将nginx使用的端口80添加到允许列表中:
1 | -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT |
修改Tomcat所在主机的防火墙配置:vi /etc/sysconfig/iptables
,将tomcat使用的端口8080添加到允许列表中:
1 | -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT |
如果主机上有多个tomcat的话,则按此规则添加多条,修改对应的端口号即可。
保存后重启防火墙:
1 | service iptables restart |
三、Tomcat负载均衡配置
Nginx启动时默认加载配置文件/etc/nginx/nginx.conf
,而nginx.conf
里会引用/etc/nginx/conf.d
目录里的所有.conf文件。
因此可以将自己定制的一些配置写到单独.conf文件里,只要文件放在/etc/nginx/conf.d
这个目录里即可,方便维护。
创建tomcats.conf:vi /etc/nginx/conf.d/tomcats.conf
,内容如下:
1 | upstream tomcats { |
修改default.conf:vi /etc/nginx/conf.d/default.conf
,修改如下:
1 | #注释原有的配置 |
保存后重新加载配置:nginx -s reload
四、静态资源分离配置
修改default.conf:vi /etc/nginx/conf.d/default.conf
,添加如下配置:
1 | #所有js,css相关的静态资源文件的请求由Nginx处理 |
五、修改SELinux安全规则
如果访问Nginx时出现502 Bad Gateway错误,则可能是Nginx主机上的SELinux限制了其使用http访问权限引起的,输入命令setsebool -P httpd_can_network_connect 1
开启权限即可。
文件/etc/nginx/nginx.conf
完整配置如下:
1 | user nginx; |
文件/etc/nginx/conf.d/default.conf
完整配置如下:
1 | server { |
温馨提示:如果执行命令时没有root权限,请在命令前面加上
sudo
执行。