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

[经验分享] 整合Tomcat和Nginx实现动静态负载均衡

[复制链接]

尚未签到

发表于 2017-12-23 20:05:23 | 显示全部楼层 |阅读模式
  转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6386135.html
  Nginx与tomcat整合可以实现服务器的负载均衡。
  在用户的请求发往服务器进行处理时,如果请求太多处理不了,容易造成服务器阻塞、响应慢等情况。这时,如果我们可以有多台服务器的话,就可以实现把请求派发给各台服务器进行处理,这个分发的过程就是由Nginx完成的。同样,由于Tomcat主要用来处理动态的内容,比如jsp文件。那么静态的html/图片等资源就可以交给Nginx来处理,期间也用到了分发。对于有多台服务器时,用一台服务器装Nginx作为代理服务器,把所有请求汇集到这里进行分发到其他服务器。而对于一台服务器实现动静态分离时,则需要在一台服务器上同时搭建Nignx和tomcat,并进行整合。其原理都是一样的,配置的文件也几乎一样。这里,我们只讲在一台服务器上的整合。
  一:安装Nignx
  

sudo apt-get install nginx  

  二:配置nginx.conf文件
  vi 打开nginx文件后,找到http{}节点,在里面添加:
  

upstream 你的域名{  server 你的云主机IP:
80;  }  
  

  然后添加一个server。如果是配置多台服务器,则在上面添加多个upstream,下面对应多个server进行分发。这里我只有一个服务器,所以配置一个:
  

server {  

  #侦听80端口
  

  listen      
80;  

  #定义使用域名访问
  

  server_name  www.xx.com;
  

  #设定本虚拟主机的访问日志
  

  access_log  logs
/www.xx.com.access.log  main;  

  

  # 定义错误提示页面
  

  error_page   
500 502 503 504 /50x.html;  

  location
= /50x.html {  

  root   
/root;  

  }
  

  

  location
~ .*.[jsp|do|action]$ { #所有jsp页面以及do/action请求均交由   tomcat处理  index index.jsp;
  proxy_pass http:
//你的域名:80; #转向tomcat处理  
    }
  

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #设定访问静态文件直接读取,不经过tomcat。过期时间30天
  expires      30d;
  }
  location ~ .*\.(js|css)?$ {
  expires      1h;
  }
  

  #设定查看Nginx状态的地址
  

  location /NginxStatus {
  

  stub_status            on;
  

  access_log              on;
  

  auth_basic              "NginxStatus";
  

  auth_basic_user_file  conf/htpasswd;
  

  }
  }
  

  三:整合tomcat
  

sudo vi /etc/nginx/conf.d/proxy.conf  

  输入
  

#!nginx (-)  
# 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;
  

  按Esc退出编辑模式,输入 :wq  保存并退出。
  配置defalut文件:
  

sudo vi /etc/nginx/sites-available/defalut  

  找到server{}添加:
  

#动态交给tomcat  
location
~ .*.[jsp|do|action]$ {  index index.jsp;
  proxy_pass 你的域名:
80;  
}
  
#静态直接读取,不结果tomcat。过去时间30天
  
location
~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {  expires      30d;
  
}
  
location
~ .*\.(js|css)?$ {  expires      1h;
  
}
  

  保存并退出。
  四:测试。
  重启你的云主机。登录ubuntu后,分别启动nginx和tomcat。(注意:重新部署项目,或者每次关机重启后,都需要分别启动tomcat和nginx)!启动nginx:/etc/init.d/nginx 启动tomcat:bin目录下 ./startup.sh
  然后在浏览器分别输入  你的域名  以及    你的域名:80/index.jsp  ,发现都跳转到同一页面。说明整合成功~

运维网声明 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-427294-1-1.html 上篇帖子: linux中Nginx与Lua执行顺序详解 下篇帖子: 绑定 Nginx 进程到不同的 CPU 上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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