Nginx 是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。Nginx、apache是基於http反向代理方式,Nginx不能爲基於TCP協議的應用提供負載均衡。 其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好.目前中國大陸使用nginx網站用戶有:新浪、網易、 騰訊,另外知名的微網誌Plurk也使用nginx。javascript
安裝軟件:css
安裝nginx、tomcat等軟件:安裝方式可自行選擇html
確保nginx、tomcat均可成功訪問java
此處使用upstream hash來完成不一樣後端服務器之間的無狀態切換:linux
安裝配置詳見:http://wiki.nginx.org/HttpUpstreamRequestHashModule nginx
tomcat配置:web
爲了使一臺機器同時啓動兩臺tomcat,須要對tomcat配置文件作以下的修改:apache
修改tomcat1 的配置:apache-tomcat-8.0.23/conf/server.xml,修改三處端口,把默認的端口修改成一個新的未使用的端口後端
<!-- 修改port端口:18006 倆個tomcat不能重複,隨意設置一個未使用的端口-->
<Server port="18006" shutdown="SHUTDOWN">
<!-- port="18081" tomcat監聽端口,隨意設置一個未使用的端口 -->
<Connector port="18081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> tomcat
nginx配置
nginx 配置文件設置nginx.conf:
如下標紅的爲必須配置的:
在http配置中配置
#Nginx所用用戶和組,window下不指定
#user niumd niumd;
#工做的子進程數量(一般等於CPU數量或者2倍於CPU)
worker_processes 2;
#錯誤日誌存放路徑
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
#指定pid存放文件
pid logs/nginx.pid;
events {
#使用網絡IO模型linux建議epoll,FreeBSD建議採用kqueue,window下不指定。
use epoll;
#容許最大鏈接數
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
# log_format main '$remote_addr ,- , $remote_user [$time_local] ,"$request" ,'
# '$status $body_bytes_sent ,"$http_referer" ,'
# '"$http_user_agent" ,"$http_x_forwarded_for"';
log_format main '$remote_addr\t$http_x_forwarded_for\t-\t$remote_user\t$time_iso8601\t$request_method\t"$document_uri"\t"$query_string"\t$server_protocol\t$status\t$body_bytes_sent\t$request_time\t"$http_referer"\t"$http_user_agent"\t$http_Cdn-Src-Ip\t$host\t$hostname\t$server_addr\t-\t-\t-\t-\t-\tV5';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 15;
concat on;
#gzip on;
upstream 10.27.171.57 { #兩個tomcat負載均衡配置,部署在同一個機器上不一樣的端口
hash $cookie_jsessionid;
server 10.27.171.57:8090;
server 10.27.171.57:8080;
hash_again 1;
}
gzip on;
gzip_vary on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 1;
gzip_types text/plain application/x-javascript text/css text/htm application/xml application/javascript text/javascript;
gzip_http_version 1.1;
proxy_buffering off;
server {
listen 80; #監聽80端口,默認直接使用ip便可訪問
#server_name localhost;
server_name 10.27.171.57; #訪問的server名稱
#charset koi8-r;
access_log /opt/rsync_log/access_http.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://10.27.171.57; #須要訪問的server地址
}
}
}
驗證集羣部署是否成功,在這裏停掉tomcat1,而後訪問http://10.27.171.57