應用場景
當在使用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:[email protected]: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 | 資料庫示例辨別,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