Nginx与Tomcat配置示例

发布时间:2019-08-28编辑:脚本学堂
本文介绍了nginx中配置tomcat的方法,如何配置Nginx和Tomcat,从而实现Nginx对Tomcat的反向代理,有需要的朋友参考下。

首先,确保系统安装了nginxtomcat,关于如何安装Nginx和Tomcat,请参考文章:

主要需要修改两个配置文件(本文以Nginx1.0.15、Tomcat7为例):

1. 在目录/etc/nginx/conf.d 下新建一个文件 tomcatserver.conf (tomcatserver可以修改为其它的名字),在文件中添加如下内容:
 

复制代码 代码示例:
server 

    #配置监听IP和Port 
    listen 80; 
    server_name localhost; 
 
    #配置默认页与web应用存放的根目录 
    index index.html index.jsp index.do index.action default.html default.jsp default.do default.action; 
    #root路径可以修改为你放置web app的根目录(注意与下面tomcat的配置要一致) 
    root /home/cwowhappy/webapps;    
 
    location ~ .(jsp|do|action)?$ { 
        proxy_set_header Host $host; 
        proxy_set_header X-Forwarded-For $remote_addr; 
        proxy_pass http://localhost:8080; 
    } 
 
    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { 
        expires 30d; 
    } 
 
    location ~ .*.(js|css)?$ { 
        expires 1h; 
    } 
 
    access_log off; 

 

2. 在目录 /etc/nginx/ 下修改文件 nginx.conf,我系统的配置文件如下,大家可对照修改:
 

复制代码 代码示例:
#使用的用户和用户组 
user cwowhappy cwowhappy; 
#指定工作衍生进程数 
worker_processes  4; 
#指定错误日志存放的路径,错误日志记录级别可选为:[debug | info | notice | warn | error | crit] 
error_log  /var/log/nginx/error.log; 
#error_log  /var/log/nginx/error.log  notice; 
#error_log  /var/log/nginx/error.log  info; 
 
#指定进程id存放的文件 
pid        /var/run/nginx.pid; 
 
 
events { 
    #使用的网络I/O模型(linux推荐使用epoll模型) 
    use epoll; 
 
    #允许的连接数 
    worker_connections  1024; 
}
 
http { 
 
    include       /etc/nginx/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  /var/log/nginx/access.log  main; 
    #add by cwowhappy 2014-04-21 configure Ngimx+Tomcat start 
    #编码格式 
    charset utf-8; 
    server_names_hash_bucket_size 128; 
    client_header_buffer_size 32k; 
    client_body_buffer_size 512k; 
    large_client_header_buffers 4 32k; 
    client_max_body_size 300m; 
    #add by cwowhappy 2014-04-21 end     
 
    sendfile        on; 
    tcp_nopush     on; 
 
    keepalive_timeout  65; 
    tcp_nodelay on; 
 
    #add by cwowhappy 2014-04-21 configure Nginx+Tomcat start 
    proxy_connect_timeout 5; 
    proxy_read_timeout 60; 
    proxy_send_timeout 5; 
    proxy_buffer_size 16k; 
    proxy_buffers 4 64k; 
    proxy_busy_buffers_size 128k; 
    proxy_temp_file_write_size 128k; 
    #add by cwowhappy 2014-04-21 configure Nginx+Tomcat end 
 
    #压缩输出配置gzip 
    gzip  on; 
    gzip_min_length 1k; 
    gzip_buffers 4 16k; 
    gzip_http_version 1.1; 
    gzip_comp_level 2; 
    gzip_types text/plain application/x-javascript text/css application/xml 
    gzip_vary on; 
 
    # Load config files from the /etc/nginx/conf.d directory 
    # The default server is in conf.d/default.conf 
    include /etc/nginx/conf.d/tomcatserver.conf; 
 

3. 修改tomcat的配置文件server.xml(此文件位于tomcat安装目录下的conf目录下),修改内容如下:
 

复制代码 代码示例:
<Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true">  
 

把上面的appBase属性修改为你web app放置的根目录(与第一步中配置要一致)  
 

复制代码 代码示例:
      <Host name="localhost"  appBase="/home/cwowhappy/webapps" 
            unpackWARs="true" autoDeploy="true"> 

遇到的问题:
1.由于刚开始在nginx.conf配置文件中配置的user为nginx,导致出现403错误,这是由于Nginx没有访问本地的文件夹的原因导致的,修改user为使用用户和该用户所属的组,即修改了此问题。

另外,如果没有对应的文件,也会提示403错误。