`

haproxy nginx tomcat

阅读更多

拟机上搭了 haproxy nginx tomcat的架构模型

 

没有haproxy的时候   nginx监听80端口  将动态请求转发给后端的8080

 

 

 

 

有haproxy后  haproxy监听80  转发给nginx的8001 nginx在讲动态的请求转发给tomcat的8080

 

 

但是就有了一个问题, 请求的url后面会包含有8001端口的

 

 

最后找到了解决办法

 

在nginx.conf

 

server {
          listen       8001;
          server_name  beta.google.com;
        

location / {
             proxy_pass http://tomcat;

                   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;

 

 

这样就不会有8001了

 

haproxy.conf

listen lbserver  *:80
   cookie JSESSIONID prefix
  # - equal weights on all servers
  # - maxconn will queue requests at HAProxy if limit is reached
  # - minconn dynamically scales the connection concurrency (bound my maxconn) depending on size of HAProxy queue
  # - check health every 20000 microseconds
 option httpchk GET /index
  server nginx1  127.0.0.1:8001  weight 1 minconn 3 maxconn 6 check inter 20000
  server tomcat2  127.0.0.1:8082  weight 1 minconn 3 maxconn 6 check inter 20000
 

 

 

后来8001又出现了

因为配了一个

rewrite /mmm  /fff  permanent;

 

这样在转发后就又出现了8001

 

解决方法

 

rewrite /mmm  http://beta.google.cn/fff  permanent;

 

 

看现象的话 nginx内部转发的话  你是什么端口的来的就转发到什么端口  8001 来的 自然转发到8001

但从外部来的话 就是80 来的

 

 

网上找相关资料

Hi, everyone.

I have a server running a php web forum. User logging into my site
using 'logging.php'.

I had set up a https server using nginx, but consdering server load, I
just want my user using https in only logging.php.

I want to settle this by using url rewrite. When my users click
http://mysite.com/logging.php,
 nginx will automatic change the url to
https://mysite.com/logging.php
. And when my user click any other links
in my site, for example, https://mysite.com/index.php,
 nginx will
change https to http.

Can rewrite work like this?

Thank you!

BTW,changing my forum codes may work, but I didn't know much about php
coding...so, I want to settle this in nginx rewrite...
In your plain http server block:

if ($uri ~* "/logging.php$") {
 rewrite ^/(.*)$ https://$host/$1
 redirect;
}


In your https server block

if ($uri !~* "/logging.php$") {
 rewrite ^/(.*)$ http://$host/$1
 redirect;
}


This is when you are using standard ports (80 for HTTP and 443 for 
HTTPS). If you are using non-standard ports (say 8080 for http, and 8443 
for https, then in this case, you should have in your http block)

if ($uri ~* "/logging.php$") {
 rewrite ^/(.*)$ https://$host:8443/$1
 redirect;
}

and correspondingly, in your https block, you should have:

if ($uri !~* "/logging.php$") {
 rewrite ^/(.*)$ http://$host:8080/$1
 redirect;
}

The $host variable is the host portion of the URL that was used to reach 
your server
See http://wiki.codemongers.com/NginxHttpCoreModule
 for the list of 
variables

 

分享到:
评论

相关推荐

    haproxy+nginx+tomcat 练习1

    在本实验中,我们将搭建一个基于CentOS 7.4的高可用性负载均衡系统,该系统使用Haproxy作为负载均衡器,Nginx作为反向代理服务器,以及两个Tomcat实例作为应用服务器。这样的架构可以提高服务的稳定性和响应速度,...

    第三十四章:Haproxy+Nginx+Tomcat实现动静页面分离1

    【标题】:“第三十四章:Haproxy+Nginx+Tomcat实现动静页面分离1” 【描述】:“本文主要介绍了如何使用Haproxy、Nginx和Tomcat来实现动静页面分离,强调了Haproxy作为七层应用代理的特性,如HTTP代理,配置简单,...

    Haproxy+Nginx+Tomcat实现动静页面分离

    一、Haproxy概述; 二、Haproxy原理实现; 三、Nginx、LVS、Haproxy对比; 四、Haproxy配置文件讲解; 五、案例:Haproxy+Nginx+Tomcat搭建高可用集群;

    负载均衡haproxy_+tomcat实战

    服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为: 高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总 高可用集群:提高冗余单元,避免单...

    基于docker-compose实现haproxy+keepalived+teleport的负载均衡和高可用1

    主机名IP地址操作系统组件备注环境说明架构图目录结构配置文件docker-compose配置文件keepalived配置文件keepalived检测脚本hapr

    Nginx+Tomcat+Memcached集群

    在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Memcached集群"是一种常见的架构模式。这种架构利用了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Memcached作为分布式内存缓存...

    nginx+haproxy.docx

    ### Nginx与Haproxy在七层负载均衡中的应用 #### 一、七层负载均衡简介 负载均衡是现代互联网架构中不可或缺的一部分,旨在提高应用程序的可用性和响应速度。根据处理的数据包层面不同,负载均衡可以分为四层...

    Nginx+Tomcat+MemCached_集群配置

    在构建高性能、高可用性的Web服务时,常常会采用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器,而Memcached作为缓存系统。这种组合可以充分利用各自的优势,提升系统的响应速度和处理能力。接下来,...

    第四章 haproxy搭建web群集

    haproxy/nginx/tomcat

    nginx+tomcat7+memcached集成 负载均衡初体验

    标题 "nginx+tomcat7+memcached集成 负载均衡初体验" 涉及的是一个常见的Web服务器和应用服务器的集成方案,用于提升网站性能和处理能力。在这个组合中,nginx作为前端反向代理服务器,负责负载均衡;Tomcat7是Java...

    使用nginx-haproxy实现七层负载均衡笔记

    Nginx和HAProxy都是高性能的负载均衡器,常用于七层负载均衡场景中。所谓七层负载均衡,指的是负载均衡器能够处理应用层的请求,基于HTTP等协议的内容进行分发,而不仅仅像四层负载均衡那样基于IP和端口进行转发。 ...

    Nginx最佳实用培训-万达IT内部培训资料

    2. 负载均衡器:如LVS、HAProxy配合Nginx,提高整体系统的可用性和负载能力。 十、Nginx与微服务架构 1. 在微服务场景中的应用:作为API Gateway,对微服务进行路由、鉴权、限流等操作。 通过这份万达IT内部培训...

    tomcat9+tomcat-cluster-redis-session-manager_4.0.zip

    这通常通过一个负载均衡器或反向代理服务器如Nginx或HAProxy来实现,它们会根据预设策略(如轮询、最少连接数等)分配请求。 "tomcat-cluster-redis-session-manager_4.0.zip"则暗示了使用Redis作为Session管理的...

    tomcat 配置宝典

    以上是对“tomcat配置宝典”中提到的关键知识点的详细解析,涵盖了Tomcat的基本配置、集群配置、Nginx和HAProxy的使用、Memcached Session共享以及Tomcat的优化等方面。这些内容对于搭建高效稳定的Web应用环境具有...

    Tomcat集群资料

    3. 配置负载均衡器:根据选择的负载均衡策略,配置Nginx或HAProxy,将请求分发到各个Tomcat实例。 4. 会话复制配置:在web.xml中启用session replication,并指定复制策略。 四、Tomcat集群的挑战与解决策略 1. ...

    apache-tomcat-8.5.64.tar.gz

    对于高可用性和负载均衡,可以配置多个Tomcat实例并通过反向代理(如Nginx或HAProxy)进行负载均衡。更高级的配置可以通过Apache HTTP Server与Tomcat的mod_jk模块实现集群。 总之,Apache Tomcat 8.5.64是部署和...

    同一台机不同IP不同tomcat.zip_boarddua_tomcat 多IP_tomcat绑定ip

    5. **负载均衡与反向代理**:为了对外部透明地访问这些多IP、多Tomcat实例,可以使用Nginx、Apache HTTP Server或HAProxy等反向代理服务器,根据设定的规则将请求路由到正确的Tomcat实例。 6. **安全与性能**:注意...

    第3周 3WEB技术-tomcat 会话同步.html

     nginx: ip_hash 、 haproxy: source 、 lvs: sh (2) session cluster:delta session manager 基于tomcat集群会话保持 分析:tomcat自身带的机制 session cluster,基于组播的方式,一个tomcat 被用户登录访问,...

    apache-tomcat-7.0.42

    - 使用第三方负载均衡器(如Nginx、HAProxy)结合Tomcat,实现更灵活的负载分配。 8. **集成其他应用服务器** - Tomcat常与其他Java EE应用服务器(如JBoss、WebLogic)一起使用,作为轻量级Servlet容器。 9. **...

    Apache+Tomcat集群

    此外,随着技术的发展,现代的负载均衡解决方案如Nginx、HAProxy等也可能替代Apache作为反向代理和负载均衡器,提供更高效、灵活的解决方案。不过,理解Apache+Tomcat集群的基础配置对于运维和开发者来说仍然是非常...

Global site tag (gtag.js) - Google Analytics