设为首页 收藏本站
查看: 1072|回复: 0

[经验分享] nginx和tomcat整合

[复制链接]

尚未签到

发表于 2018-12-2 13:38:09 | 显示全部楼层 |阅读模式
  环境:Ubuntu 8.04.4 LTS \n \l
  1.tomcat和jdk已经装好,见我的另一篇博客,这里不再叙述。这里直接写nginx怎么做web服务器的配置,并与tomcat相结合。
  2.安装nginx
  sudo apt-get install nginx
  3.配置nginx
    3.1在/etc/nginx/conf.d目录下建一个proxy.conf文件(实现转给tomcat,也即跳转代理的参数配置)
  
  /etc/nginx/conf.d$ vim proxy.conf
  proxy_redirect          off;
  proxy_set_header        Host $host;
  proxy_set_header        X-Real-IP $remote_addr;   #获取真实IP
  #proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip
  client_max_body_size    10m;
  client_body_buffer_size 128k;
  proxy_connect_timeout   90;
  proxy_send_timeout      90;
  proxy_read_timeout      90;
  proxy_buffer_size       4k;
  proxy_buffers           4 32k;
  proxy_busy_buffers_size 64k;
  proxy_temp_file_write_size 64k;   
    3.2 配置主配置文件nginx.conf,下面是一个配置实例:
  user www-data;
  worker_processes  1;
  

  error_log  /var/log/nginx/error.log;
  pid        /var/run/nginx.pid;
  

  events {
  use epoll;
      worker_connections  4096;
      # multi_accept on;
  }
  

  http {
      include       /etc/nginx/mime.types;
  

      access_log /var/log/nginx/access.log;
  

      sendfile        on;
      #tcp_nopush     on;
  

      #keepalive_timeout  0;
      keepalive_timeout  65;
      tcp_nodelay        on;
  

      gzip  on;
      gzip_disable "MSIE [1-6]\.(?!.*SV1)";
  server {
          listen       80;
          server_name  www.abc.com;
          location / {
               root /home/web/front/www;
               index  index.do ;
          }
          location ~ .*.do$ {         
                  index   index.do;
                  proxy_pass http://1.1.1.1:8080;  
          }
          location ~ .*.jsp$ {         
                  index   index.jsp;
                  proxy_pass      http://1.1.1.1:8080;  
          }
          # redirect server error pages to the static page /50x.html
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
      }
      include /etc/nginx/conf.d/*.conf;
      include /etc/nginx/sites-enabled/*;
  }
  

  # mail {
  #     # See sample authentication script at:
  #     # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript
  #
  #     # auth_http localhost/auth.php;
  #     # pop3_capabilities "TOP" "USER";
  #     # imap_capabilities "IMAP4rev1" "UIDPLUS";
  #
  #     server {
  #         listen     localhost:110;
  #         protocol   pop3;
  #         proxy      on;
  #     }
  #
  #     server {
  #         listen     localhost:143;
  #         protocol   imap;
  #         proxy      on;
  #     }
  # }
  解释:
  http://1.1.1.1:8080;  //1.1.1.1是tomcat的地址,*.do和*.jsp的页面都会转发给1.1.1.1上面的8080端口,也就是转给tomcat。
   listen       80;  //nginx监听端口
  server_name  www.abc.com;  //虚拟主机的名字(域名)
   root /home/web/front/www; //虚拟主机对应的目录
  index  index.do ;  //index.do是索引名称,访问域名时会首先找到这个文件,然后tomcat再去根据这个文件做相应处理、打开页面。
  

  另外一个虚拟主机配置:
  
  server {
          listen       80;
          server_name  passport.abc.com;
          location / {
               root /home/web/front/passport;
               index  index.do;
          }
          location ~ .*.do$ {
                  index   index.do;
                  proxy_pass      http://1.1.1.1:8080;
          }
          location ~ .*.jsp$ {
                  index   index.jsp;
                  proxy_pass      http://1.1.1.1:8080;
          }
  

          # redirect server error pages to the static page /50x.html
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
      }
  

  4.注意事项和总结
     index  index.do ;  //这个索引文件不能用*.do,必须是确定的名字,并且要是对的
   配置虚拟主机的时候  sites-enabled 中一定要手动建立软连接,指向虚拟站点目录 sites-available。用sudo a2ensite * 不起作用、、
  5.附  location
语法:location [=|~|~*|^~] /uri/ { … }
默认:否

上下文:server
这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式,你必须使用 ~* 前缀选择不区分大小写的匹配或者 ~ 选择区分大小写的匹配。
确定 哪个location 指令匹配一个特定指令,常规字符串第一个测试。常规字符串匹配请求的开始部分并且区分大小写,最明确的匹配将会被使用(查看下文明白 nginx 怎么确定它)。然后正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。如果没有找到匹配的正则表达式,使用常规字符串的结果。
有两个方法修改这个行为。第一个方法是使用 “=”前缀,将只执行严格匹配。如果这个查询匹配,那么将停止搜索并立即处理这个请求。例子:如果经常发生”/”请求,那么使用 “location = /” 将加速处理这个请求。
第二个是使用 ^~ 前缀。如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。
而且它重要在于 NGINX 做比较没有 URL 编码,所以如果你有一个 URL 链接’/images/%20/test’ , 那么使用 “images/ /test” 限定location。
总结,指令按下列顺序被接受:
1. = 前缀的指令严格匹配这个查询。如果找到,停止搜索。
2. 剩下的常规字符串,长的在前。如果这个匹配使用 ^~ 前缀,搜索停止。
3. 正则表达式,按配置文件里的顺序。
4. 如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。

例子:
location = / {
# 只匹配 / 查询。
[ configuration A ]
}

location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}

location ^~ /images/ {
# 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}

location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用 Configuration C。
[ configuration D ]
}

例子请求:
/ -> configuration A
/documents/document.html -> configuration B
/images/1.gif -> configuration C
/documents/1.jpg -> configuration D
注意:按任意顺序定义这4个配置结果将仍然一样。



                       
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642425-1-1.html 上篇帖子: tomcat session cluster 下篇帖子: Tomcat配置ssl
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表