Java - Nginx+Tomcat+Window环境部署web服务(测试+图解)

用例:客户端访问Nginx服务,Nginx反向代理的作用:项目部署在多个Tomcat上 即使其中一个tomcat不能访问了也能访问其他的Tomcat服务 其他负载均衡的作用效果可以自行百度。(分享给跟我一样的小白)

推荐文章:

-Nginx安装及配置详解

1.条件准备:

   1.1.Nginx安装包 下载地址  

   1.2.Tomcat安装包 下载地址

   1.3.基本Tomcat和Nginx的相关知识要懂 起码得知道如何配置 和 如何启动

        1.3.1修改Tomcat端口

        1.3.2Nginx使用教程

2.Tomcat部署并启动(多个Tomcat服务)

部署2个Tomcat-8070端口 和 Tomcat8071端口  (修改Tomcat端口


遇到一些坑 启动Tomcat的时候 bin/下面的startup.bat会提示未配置Java_home 和 jre_home变量 的解决方案(点击这里):

因为startup.bat启动的时候会去同个目录下的setclasspath.bat里面找classpath

有件编辑添加这两句:(路径要根据具体电脑的JDK安装路径来改)


  
  
  1. set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_121
  2. set JRE_HOME=C:\Program Files\Java\jdk1.8.0_121\jre


修改端口并启动8070那个tomcat



8071端口


3.Nginx配置并部署

配置两个Tomcat服务指向 localhost:8070 和 localhost:8071他们的权重都是5(权重越大就越容易被访问)


  
  
  1. upstream localhost {
  2. #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。
  3. #同一机器在多网情况下,路由切换,ip可能不同
  4. #ip_hash;
  5. server localhost: 8070 weight= 5;
  6. server localhost: 8071 weight= 5;
  7. }

  
  
  1. server {
  2. listen 80;
  3. server_name localhost;
  4. location / {
  5. proxy_connect_timeout 3;
  6. proxy_send_timeout 30;
  7. proxy_read_timeout 30;
  8. proxy_pass http: //localhost;
  9. }
  10. #error_page 404 / 404.html;
  11. # redirect server error pages to the static page / 50x.html
  12. #
  13. error_page 500 502 503 504 / 50x.html;
  14. location = / 50x.html {
  15. root html;
  16. }
  17. # proxy the PHP scripts to Apache listening on 127.0.0.1: 80
  18. #
  19. #location ~ \.php$ {
  20. # proxy_pass http: //127.0.0.1;
  21. #}
  22. # pass the PHP scripts to FastCGI server listening on 127.0.0.1: 9000
  23. #
  24. #location ~ \.php$ {
  25. # root html;
  26. # fastcgi_pass 127.0.0.1: 9000;
  27. # fastcgi_index index.php;
  28. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  29. # include fastcgi_params;
  30. #}
  31. # deny access to .htaccess files, if Apache 's document root
  32. # concurs with nginx's one
  33. #
  34. #location ~ /\.ht {
  35. # deny all;
  36. #}
  37. }


我们通过访问localhost:80来访问指定的两个服务8070和8071两个服务

4.测试

1.同时开启8071和8071的服务时候 (修改权重容易看到区别)


2.假设8071服务不能访问了(8071Tomcat 关掉)则自动会去访问8070的服务



3.假设8070服务不能访问了(8070Tomcat 关掉)则自动会去访问8071的服务


4.两个服务都不能访问的时候(8071和8071都关掉)


这个错误是Nginx启动成功但是未找到服务!


===============================================

更新:Nginx反向代理导致ip错误的问题 程序里面getRequestUrl() 会变成localhost

解决:- Nginx 使用 proxy_pass 后在 Java 中 getRequestUrl() 的问题

localhost里面添加


  
  
  1. proxy_set_header Host $host;
  2. proxy_set_header X-Real-Ip $remote_addr;
  3. proxy_set_header X-Forwarded-For $remote_addr;

如下


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值