热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Nginx+tomcat负载均衡集群服务器中配置多站点的方法

虽然夜深了,但是还是解决了这个困扰我一个晚上的问题,记录下来备查。接着我前不久写的这一篇来的。举个例子,现在是这样的情况:我现在有a、b、c三个不同的应用,每个Tomcat集群机(一共3个)上都建立了这三个应用的虚拟主机,我要把这三个应用用一个nginx
虽然夜深了,但是还是解决了这个困扰我一个晚上的问题,记录下来备查。接着我前不久写的这一篇来的。
举个例子,现在是这样的情况:我现在有a、b、c三个不同的应用,每个Tomcat集群机(一共3个)上都建立了这三个应用的虚拟主机,我要把这三个应用用一个nginx负载均衡
中间测试了很多次,失败的过程就不多说了,直接说最终解决的办法。

首先要把3个虚拟主机的域名(a.server110.com、b.server110.com、c.server110.com)都指向到nginx机的公网ip上。
然后还是修改nginx的配置文件nginx.conf:
配置文件中upstream段还是保持不变,依旧是3个tomcat集群机的地址及负载因子:
    upstream gnaiqeh {
      server 192.168.0.11:8080 weight=1;
      server 192.168.0.12:8080 weight=1;
      server 192.168.0.13:8080 weight=1;
    }

因为有3个应用,所以应该有3个server段,这里只写其中一个,其他两个只需要修改一下server_name即可:
    server {
listen       80;
        server_name a.server110.com; #另外两个是b.server110.com、c.server110.com
        location / {
root   html;
index index.jsp index.html index.htm;
proxy_redirect off;
proxy_set_header Host $host; #这一句至关重要
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://gnaiqeh;
        }
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
root   html;
        }
    }

proxy_set_header是nginx的http代理模块中的一个指令。

在nginx中的默认proxy是只能对后面real server做端口转发的,而不能做域名转发,即默认的是:
proxy_set_header Host $proxy_host;

我们要通过域名转发就必须改为:
proxy_set_header Host $host;

最后修改tomcat的配置文件server.xml,主要是配置虚拟主机:
      unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
       
     

      unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
       
     

      unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
       
     


3台集群机均改成上面一样的。

然后重启nginx,重启tomcat,测试访问三个域名都通过,打完收工。

推荐阅读
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 两个条件,组合控制#if($query_string~*modviewthread&t(&extra(.*)))?$)#{#set$itid$1;#rewrite^ ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 在优化Nginx与PHP的高效配置过程中,许多教程提供的配置方法存在诸多问题或不良实践。本文将深入探讨这些常见错误,并详细介绍如何正确配置Nginx和PHP,以实现更高的性能和稳定性。我们将从Nginx配置文件的基本指令入手,逐步解析每个关键参数的最优设置,帮助读者理解其背后的原理和实际应用效果。 ... [详细]
  • Nginx作为前端服务器时,Tomcat与Apache作为后端,War包应部署在何处? ... [详细]
author-avatar
单莼de笑脸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有