Nginx+tomcat配置
發這個帖子可能是在班門弄斧,但還是希望跟大家分享一下。
準備的環境
nginx-1.1.12
tomcat5
windows7
Nginx配置
主要是修改conf/nginx.conf文件#用戶組表示哪個用戶組下的用戶啟動。格式為:user username groupname; username為用戶名,groupname為組名
#user nobody;
#工作進成數(通常寫CPU數量或者2倍的CPU數量)
worker_processes 2;
#日誌輸出位置,日誌輸出格式
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
#進程號保存文件
pid logs/nginx.pid;
#指定最大的文件描述符值,可以通過這個進程打開 (默認沒有該設置)
#worker_rlimit_nofile 1024;
events {
#連接數,默認1024
worker_connections 1024;
}
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"';
#access_log logs/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#keepalive_timeout 0;
#長連接超時時間
keepalive_timeout 300;
#數據壓縮流,可提高效率
include gzip.conf;
#設定負載均衡的伺服器列表
upstream myserver {
#weigth參數表示權值,權值越高被分配到的幾率越大
#Nginx負載均衡配置沒有apache那麼複雜只需要配置IP和埠即可
server 127.0.0.1:8888 weight=1;
server 127.0.0.1:8887 weight=1;
}
server {
listen 8088;
server_name 127.0.0.1;
#字符集編碼
charset utf-8;
#設定本虛擬主機的訪問日誌
access_log logs/host.access.log main;
#默認打開文件
location / {
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http://myserver;
}
}
}在conf目錄下建立文件
gzip.conf文件
內容如下:gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript; Tomcat配置
主要是server.xml文件<Server port="9005" shutdown="SHUTDOWN"><!--如果在同一台機器部署多個tomcat 這個埠不能相同--> <Connector port="8887" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="utf-8"/><!--同上,並且該埠在nginx配置用到,其他不廢話了-->
<Host name="localhost" appBase="D:\work\work_tet\test\WebRoot"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"><!--配置工程路徑-->
session複製配置
在Host下 放開註釋即可,註釋內容如下:
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4002"
tcpSelectorTimeout="5000"
tcpThreadCount="6"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
</Cluster>
<Context path="" docBase="." privileged="true"/>
經過實驗是可以實現負載均衡和複製session的。但有個問題是怎麼設置或測試動態併發數呢, apache裡面有ab(測試靜態的) ,nginx用什麼測試呢
[火星人
]
Nginx+tomcat配置已經有552次圍觀
http://coctec.com/docs/service/show-post-13470.html