`

Nginx+Tomcat 真正意义上的反向代理 多站点设置 高级篇

阅读更多
Nginx+Tomcat 真正意义上的反向代理 多站点设置 高级篇
 
2012-05-13 09:32:07
 
 
 
 
 

一般利用nginx做代理,网上搜索的资料均为下面这种方式:

在nginx.conf中

 

server {
        listen       80;
        server_name  localhost;
        root   /home/mysite/public_html;

        location / {
            index  index.html index.htm  index.jsp;
        }

        location ~ .*.jsp$
        {
                index index.jsp;
                proxy_pass http://localhost:8080;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;

        }

 

        location ~ \.action$ {
                proxy_pass http://localhost:8080;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $http_host;
        }

        location ~ ^/WEB-INF/* {
        proxy_pass http://localhost:8080;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        Host $http_host;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

这种方式需要服务器开两个端口,一是80,二是8080。只使用80,只需如下配置,在tomcat下面的的配置中加入address。

 

 

<Connector port="8080" address="127.0.0.1" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 

这种方式才真正实现了反向代理。

在多站点设置中,可能就不是这种方式,比如有二十个站点,tomcat的端口可能是8001-8020。有些客户的防火墙对上网行为进行了限制。比如,只允许访问外面的80端口,这样就造成了这些站点无法正常访问。

笔者的解决方法:

在网络配置中增加多ip。

linux环境中可以在/etc/sysconfig/network-scripts编写ifcfg-eth0-range0文件,内容如下:

DEVICE=eth0
BOOTPROTO=static
BROADCAST=172.16.20.255
HWADDR=00:04:23:C4:9A:0D

IPADDR_START=172.16.20.201
IPADDR_END=172.16.20.220
CLONENUM_START=1

NETMASK=255.255.255.0
NETWORK=172.16.20.0
ONBOOT=yes

 

这样系统启动的时候将产生172.16.20.201-220二十个ip,绑定在eth0。

http://www.lerx.com/html/2012/03/23/151125393.html的内容进行多站点配置。

将proxy_pass http://localhost:8080;改为:proxy_pass http://172.16.20.(201-220):8080;

在每个站点的Tomcat的conf的server.xml中相应的http端口中加入address=172.16.20.(201-220)。

如:

 

<Connector port="8005" address="172.16.20.205" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 

在各用户站点目录中执行./tomcat.sh stop 再执行./tomcat.sh start重启tomcat即可。

这样,该服务器对外的web端口将只使用80,不再有其它端口。nginx将向IP为172.16.20.(201-220,绑定在本机)的8001-8020的端口发送请求,并返回给自己,然后从80端口返回页面给客户。

原文地址http://www.lerx.com/html/2012/05/13/093207745.html

分享到:
评论

相关推荐

    详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点

    Nginx + Tomcat 反向代理 如何在一台服务器部署多个站点,节省服务器开支,就在这篇文章了。 首先我们需要安装好Nginx、jdk、Tomcat,安装方法已经在 上一篇 说过了,本篇不再赘述。 下来看一下我们的需求,我这里有...

    Web服务器三剑客运维配置实战 Nginx+JVM+Tomcat+HTTP协议.zip

    ├─2.03 Nginx进阶基础-常见配置-反向代理.mp4 ├─2.04 Nginx进阶基础-upstream.mp4 ├─2.05 Nginx进阶基础-常用配置-会话保持.mp4 ├─2.06 Nginx进阶基础常见配置-动静分离.mp4 ├─2.07 Nginx进阶常见配置-...

    nginx负载均衡 nginx+tomcat tomcat实现负责均衡

    2. **功能限制**:相比于Apache可以通过安装多种模块来支持不同类型的页面脚本(如PHP、CGI等),Nginx本身不具备此功能,更多地聚焦于HTTP和反向代理服务。 3. **负载均衡与容错**:Nginx支持简单的负载均衡机制,...

    nginx+tomcat负载均衡集群思路步骤过程.docx

    Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,提高系统性能和稳定性。以下是对【标题】“nginx+tomcat负载均衡集群思路步骤过程.docx”和...

    配置CentOS下的Nginx+Mysql+PHP+Tomcat

    具体包括设置反向代理,将PHP请求转发到PHP-FPM,而将Java应用请求转发到Tomcat服务器。 1. **配置PHP处理** - 在Nginx的配置文件中增加一个location块,指定`.php`结尾的文件由`fastcgi_pass`将请求转发到PHP-FPM...

    linux下nginx+tomcat使用redis进行session共享所需jar包

    在Linux环境下,构建一个高效的Web服务架构通常会结合多种技术,例如使用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器,以及Redis作为分布式缓存来实现Session共享。本教程将详细讲解如何在Linux上的...

    Nginx+Tomcat9搭建负载均衡实例,解压即可运行

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国...

    windows下Nginx+memcached+Tomcat集群配置实现session共享与负载均衡

    在Windows环境下,构建一个基于Nginx的高可用性Web集群,通常包括Nginx作为反向代理和负载均衡器,memcached用于session共享,以及多个Tomcat实例作为应用服务器。这种架构可以确保用户session的一致性,并在多台...

    Nginx+Tomcat高性能负载均衡集群搭建教程

    Nginx是一个高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3...在这里我们采用集群部署方式,使用多个Tomcat,反向代理使用Nginx。 架构如下: 准备工作 apache-tomcat-7.0.61 nginx-1.12.2 Redis-x64-3.2.10

    Nginx+Tomcat多站点部署的方法

    Nginx+Tomcat多站点部署是一种将Nginx作为反向代理服务器与Tomcat服务器结合,实现多个网站域名指向同一台服务器上不同应用部署的方法。这种架构设计主要利用了Nginx的高性能反向代理功能以及Tomcat作为应用服务器的...

    详解实现Nginx+Tomcat实现单IP、多域名、多站点的访问

    小到两个网站只能跑在一台512M内存的公网服务器上(tomcat+MySQL,由于内存太小了,只能把两个网站部署在同一个tomcat上),每个网站有自己的域名,初步考虑使有nginx做反向代理,把两个域名映射到相应的应用上。...

    centos7+Tomcat+MySQL+nginx电子商务站点部署及rsync备份

    本文档旨在提供一套完整的基于CentOS 7操作系统、Tomcat应用服务器、MySQL数据库服务器以及Nginx反向代理服务器的电子商务站点部署方案,并结合rsync工具实现数据备份。通过本方案,可以构建一个稳定、高效且安全的...

    tomcat+nginx+mybatis+redis整合

    "Tomcat+Nginx+MyBatis+Redis"的整合就是一个典型的案例,它利用了Tomcat作为Java应用服务器,Nginx作为反向代理和负载均衡器,MyBatis作为持久层框架,以及Redis作为高速缓存系统。 一、部署启动多个Tomcat 1. ...

    配置好的tomcat+nginx

    标题 "配置好的tomcat+nginx" 暗示了这个压缩包可能包含了已经预先配置好以协同工作的Tomcat(一个Java应用服务器)和Nginx(一个高性能的Web服务器及反向代理服务器)。这个组合常见于高并发、负载均衡的Web服务...

    web服务器nginx+部署前端vue项目

    Nginx 是一款广泛使用的高性能 HTTP 和反向代理 web 服务器。它以其出色的并发处理能力和较低的内存消耗而闻名。根据相关报告,Nginx 能够支持高达 50,000 个并发连接数,这使得它成为处理高流量站点的理想选择。在...

    Nginx反向代理实战.pptx

    "Nginx反向代理实战" 本文档详细介绍了使用Nginx实现反向代理的实战案例,包括负载均衡、静态内容与动态内容服务器分离、缓存、数据队列、数据库集群和NoSql分布式数据引擎等技术的应用。 一、负载均衡 在本实战...

    nginx的七个实验

    在Java应用中,Nginx通常与Tomcat配合,Nginx作为反向代理,接收前端请求,然后将动态请求转发给Tomcat处理。这有助于平衡负载,优化性能。实验会涉及Nginx的proxy_pass指令,以及如何配置健康检查和session保持。 ...

Global site tag (gtag.js) - Google Analytics