应用场景
当在使用nginx的时候,不是仅仅部署一个空的nginx就可以了,而是需要和具体的业务系统接入。
操作步骤
1. 配置Nginx
配置conf:
# vi /usr/local/nginx/conf/nginx.conf
配置文件上传模块,在配置文件中找到如下章节位置,修改红色标注部分为生产环境中服务器IP地址,
#####################文件上传服务器配置(项目组生产环境需要修改)-START############
upstream epointjweb_file {
server 192.168.202.5:8090; #配置文件上传下载服务器
}
#####################文件上传服务器配置-END########################
配置项目上负载服务器,在配置文件中找到如下配置节点,根据项目的应用location和upstream节点。
#####################项目组业务服务器配置-START###########################
#注:以下是示例配置,结合项目实际具体配置
upstream epointjweb {
server 192.168.202.4:8090; #WEB服务器IP
server 192.168.202.5:8090;
}
#####################项目组业务服务器配置-END############################
##################项目组应用URL配置-START##########################
#注:以下是实例配置,结合项目实际具体配置
location /appurl { # appurl为访问应用的URL
proxy_pass http://epointjweb; 这里红色标注的为对应后端RS服务器upstream名称
}
##################项目组应用URL配置-END##########################
重启服务
# service nginx restart
2. 配置Session共享
配置应用xml增加以下过滤器
注:此过滤器必须是web.xml中的第一个过滤器!
<!--集群配置 begin -->
<filter>
<display-name>ClusteredSessionFilter</display-name>
<filter-name>ClusteredSessionFilter</filter-name>
<filter-class>com.epoint.clustered.session.ClusteredSessionFilter</filter-class>
<init-param>
<param-name>maxInactiveInterval</param-name>
<param-value>1800</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ClusteredSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--集群配置 end -->
在配置Session共享之前请按照框架部署方案正确安装与配置redis,检查redis是否添加了密码配置和绑定IP配置,配置的步骤参照Redis的部署文档。建议项目在开始就将redis加入密码,因为没有密码的redis在系统漏洞扫描中会认为是高危漏洞被扫描出。
配置property缓存服务
#redis连接字符串配置:redis://host:port/dbIndex或者 redis://user:password@host:port/dbIndex
redisSetting= redis://username:password@192.168.202.220:6379/0
#注:这里的用户名为epoint,password填写redis的密码,ip地址替换为redis服务器地址,端口为redis端口,默认为6379,不可为空必须填写;dbindex为数据库标识,集群内相同的应用填写同一个dbindex以达到session共享的目的。
#框架缓存实现策略,当配置了上面redis参数时,框架缓存实现将会切换到redis,默认是eh的.当你想强制指定缓存实现策略时,你可以配置下面的参数值为redis、eh
cacheImpl=eh
连接字符串配置说明:
参数 | 参考值 | 说明 |
---|---|---|
host | redis缓存数据库服务器地址,高可用模式下需配置为keepalived虚拟ip | |
port | 6379 | 监听端口,默认端口为6379 |
user | 用户名 | |
password | 密码 | |
dbIndex | 0 | 数据库示例标识,redis默认开启了16个数据库,即0~15 |
3. FAQ
3.1 编译异常
安装时缺少c编译器:configure: error: no acceptable C compiler found in $PATH?
# yum install gcc
安装时缺少pcre、gzip、openssl等类库?
# yum install pcre-devel
# yum install zlib zlib-devel
# yum install openssl openssl-devel
3.2 安装异常
安装nginx时提示Public key for nginx-1.8.0***.rpm is not installed?
加上"--nogpgcheck"参数
# yum -y localinstall nginx-1.8.0-1.el6.ngx.x86_64.rpm --nogpgcheck
安装keepalived时提示configure: error: No SO_MARK declaration in headers?
加上"--disable-fwmark"参数
# ./configure --disable-fwmark
3.3 配置防火墙
如果必须开启防火墙,请开启必要的端口。
注:规则需添加在22端口规则后reject规则之前!
配置端口
# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
重启防火墙
# service iptables restart