nginx整合tomcat-流云小石
欢迎光临
我们一直在努力

nginx整合tomcat

因为nginx处理静态页面的速度很快,并且是免费的,它还可以配置负载均衡的服务器集群来搭建多个tomcat,所以nginx+tomcat是企业搭建javaee项目很好的选择。nginx主要是通过反向代理的方法将jsp,jspx后缀或者是javaee框架设置的特定的页面(.do,.action)请求来交给tomcat处理,自己处理.html,.css或者是一些图片和flash。

配置很简单,自己本身监听80端口过来的所有请求,如果发现是.jsp或者是.do后缀的文件请求就交给监听8080端口的tomcat来处理,配置如下:

  1. server  
  2. {  
  3. listen 80;#定义访问的端口号  
  4. server_name www.myhost.com; #定义访问的域名  
  5. index index.html index.htm index.jsp default.html default.htm default.php;#默认的根目录访问文件  
  6. root /home/wwwroot/www.myhost.com;#定义服务器访问的默认根目录  
  7.   
  8. location ~ .(jsp|jspx|do)?$ #tomcat的访问文件后缀  
  9. {  
  10. proxy_pass http://127.0.0.1:8080;#反向代理到tomcat监听的端口  
  11. include proxy.conf  
  12. }  
  13.   
  14. location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$  
  15. {  
  16. expires 30d;  
  17. }  
  18.   
  19. location ~ .*.(js|css)?$  
  20. {  
  21. expires 12h;  
  22. }  
  23.   
  24. access_log /home/wwwlogs/www.myhost.com.log www.myhost.com;  
  25. }  

这个是nginx最简单的配置,如果有更多的需求需要参考别的地方。

这种默认的配置方法写java代码 request.getRemoteAddr()是获取不到用户访问的真实ip的。只能得到你自己服务器的ip地址,因为nginx转发了请求。注意上面代码中我在 proxy_pass http://127.0.0.1:8080 下面配置了include proxy.conf,所以你需要在nginx目录里proxy.conf里面配置一些东西。

  1. proxy_connect_timeout 300s;  
  2. proxy_send_timeout 900;  
  3. proxy_read_timeout 900;  
  4. proxy_buffer_size 32k;  
  5. proxy_buffers 4 32k;  
  6. proxy_busy_buffers_size 64k;  
  7. proxy_redirect off;  
  8. proxy_hide_header Vary;  
  9. proxy_set_header Accept-Encoding ;  
  10. proxy_set_header Host $host;  
  11. proxy_set_header Referer $http_referer;  
  12. proxy_set_header Cookie $http_cookie;  
  13. proxy_set_header X-Real-IP $remote_addr;  
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP  
  15. proxy.conf文件配置如上,当然还配置了一些response请求头里面的东西,你可以都加进去。然后你用java代码这个req.getHeader(“X-Forwarded-For”);方法就能获取用户的真实ip了。  

通过以上的配置nginx这一块就弄好了,你还需要更改一下tomcat的server.xml文件,把tomcat解析javaee项目的目录地址改成和nginx的目录一致。打开tomcat/conf/server.xml文件,把Host标签appBase属性改成nginx配置里面的root默认路径。

以上nginx+tomcat就配置好了,重启tomcat刷新下nginx配置文件,然后把javaee项目放在/home/wwwroot/www.myhost.com目录就可以用80端口测试使用了。

赞(0)
未经允许不得转载:流云小石 » nginx整合tomcat