本文讲了windows环境下的nginx和tomcat的一个简单的配置实例包括dwr的的js特殊的地方配置。当然nginx只有才unix下才能表现出好的性能,主要是io模型等方面。
项目demo的下载:/Files/freeman1984/ndemo.rar,里面包含了简单的测试项目和配置文件,以及nginx的参考文档一份。
项目单独在tomcat下访问路径为: http://localhost:8088/ndemo/server.jsp
Nginx下访问路径:http://www.joe.com/server.jsp ,其中(www.joe.com是我在hosts文件里面配置的)
一下是nginx的配置:
Nginx.conf 内容:
#user nobody;
worker_processes 2; #进程数,和cpu个数相关
pid logs/nginx.pid;
events {
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"';
sendfile on;
keepalive_timeout 65;
include gzip.conf;#启动数据压缩
server {
listen 80;
server_name www.joe.com;#此部分测试的时候可以在host文件里面加上
root E:/apache-tomcat-6.0.32/webapps;#项目路径,直接和后台使用一个目录
error_page 404 /ndemo/404.html;
error_page 500 502 503 504 /ndemo/50x.html;
location ~ ^/(WEB-INF)/ {
deny all;
}
#此部分主要是dwr的js有写是服务器动态生成的,不能交给nginx处理,这样会出现404,需要单独处理并交给服务器处理。
location /ndemo/dwr/ {
proxy_pass http://localhost:8088/ndemo/dwr/;
include proxy.conf;
}
#其他的静态文件处理dwr的都交给nginx处理
location ~ /.
(htm|html|gif|jpg|jpeg|png|ico|rar|css|js|zip|txt|flv|swf|doc|ppt|xls|pdf)$ {
access_log off;
expires 24h;
}
#注意我的上下文是ndemo
location /ndemo/ {
proxy_pass http://localhost:8088/ndemo/;
include proxy.conf;
}
#访问根目录下的路径也就是webapp,默认跳转到ndemo项目的路径下,也就是跳转到上面的路径
location / {
rewrite (.*)$ /ndemo$1 permanent;
}
location ~ ^/NginxStatus {#nginx的状态监控需要basic密码保护,可使用apache的工具生成,方式可见于http://www.blogjava.net/freeman1984/articles/363943.html}
stub_status on;
access_log off;
auth_basic "valid-user";
auth_basic_user_file ewds_pw;
}
}
}
proxy.conf:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
www.th7.cn
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
gzip.conf:
gzip on;
gzip_min_length 1024;
gzip_types text/plain text/css application/x-javascript;
顺便展示单独使用tomcat和使用了nginx和gzip的请求对照情况,可以明显发现nginx对静态文件的处理效率非常高。
单独使用tomcat:
使用nginx和gzip压缩后的请求情况
摘自 疯狂 --专注java,开源,架构,项目管理