解决线上服务器httpd无法反向代理resin的解决方法

一、简述

  前两天有后端的小伙伴跟我反映说使用httpd反向代理resin时遇到的问题,在做网站管理后台的时候,发起的http的put,delete的请求无法经由resin传递到后面的dbserver。当时的第一反应就是httpd的反向代理设置出现的问题,但是关于httpd反代resin的内容在网上机会搜索不到。于是,查看httpd反代tomcat的设置进行配置,但是依旧不成功。

二、解决思路

说明:因为真实的线上业务服务器,所以配置文件中的ip地址均使用IP代替,域名均使用servername代替

  因为这是台线上的server,有两个官网的业务在跑,所以不能停服。于是便有了以下三种我能想到的解决方案。

1、将httpd换成nginx,但是这个客户的服务器慎重起见还是不要动的好,果断放弃。

2、所以nginx反代httpd和resin具体的配置如下;

  (1)先修改 /usr/local/apache/conf/vhost 下面两个虚拟主机监听的端口

<VirtualHost *:8090>ServerName localhost
<VirtualHost *:8091>ServerName localhost

   (2)修改nginx的配置文件   

server {
        listen                       80;
        server_name                 servername1;
        chunked_transfer_encoding    on;
        proxy_http_version           1.1;
        location /  {
        proxy_pass  http://IP:8090;
        proxy_set_header        Host            $host;
                    }
 
 
          }
 
server {
        listen                       80;
        server_name                  servername2;
        chunked_transfer_encoding    on;
proxy_http_version           1.1;
      
 
        location /  {
        proxy_pass  http://IP:8091;
        proxy_set_header        Host            $host;
                    }
 
          }
 
server {
 
        listen   80;
        index index.html index.htm index.php;
 
        server_name  servername3;
 
        location / {
        proxy_pass  http://localhost:8080;
        proxy_redirect off;
        proxy_set_header x-Real-IP $remote_addr;
        proxy_set_header        Host            $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

 

3、修改了这么的配置感觉不是很爽,于是想到了第三种方法。

443端口是给web服务器使用ssl进行https方式进行工作的端口。也就是在原来的http的基础上加了一层密,那我不要这层加密应该也能用吧?

于是想着直接让nginx去监听443端口,然后再让nginx去反向代理resin,同时将后端管理的域名与nginx的域名绑定在一起,就能解决问题了。

 

修改nginx的配置文件的内容

server {
 
        listen   443;
 
        index index.html index.htm index.php;
 
        server_name  servername3;
 
        location / {
        proxy_pass  http://localhost:8080;
        proxy_redirect off;
        proxy_set_header x-Real-IP $remote_addr;
        proxy_set_header        Host            $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

 

 

总结:方法3是对业务影响最下的方法,原来的业务不需要做任何的改动,也不存在nginx配置出错无法代理httpd而引起的业务中断。

原创文章,作者:hanlln1,如若转载,请注明出处:http://www.178linux.com/66427

赞 (0)
hanlln1hanlln1
上一篇 2017-01-11 14:39
下一篇 2017-01-12 11:30

相关推荐

  • 权限管理

     权限管理:  ls -l       rwxrwxrwx:              左三位:定义user(owner)的权限              中三位:定义g…

    Linux干货 2016-12-21
  • 推荐-LVS专题: LVS的工作模型和调度算法介绍

    LVS专题: LVS的工作模型和调度算法介绍 LVS专题: LVS的工作模型和调度算法介绍 前言 什么是负载均衡? 什么是LVS? LVS的架构: LVS的实现模型: NAT实现原理: DR实现原理: TUN实现原理: FULLNAT实现原理: LVS的调度算法 静态调度算法(4种) 动态调度算法(6种): 总结 前言 本文大概介绍一下LVS的工作方式和实现…

    Linux干货 2016-04-05
  • VIM命令 总结

    VIM命令总结

    2017-11-25
  • 编译安装httt服务

    1 软件下载地址:http://httpd.apache.org/ 2 将下载好的httpd-2.2.34.tar.bz2包解压到 /usr/local/src/httpd-2.2.34–  # tar xvf httpd-2.2.34.tar.bz2 3 编译安装http,指定安装路径: –prefix=/app/http…

    Linux干货 2017-08-05
  • 基于rsyslog的iptables.log配置

                                                      …

    Linux干货 2016-01-15
  • HSRP vs VRRP

    HSRP:(Hot Standby Router Protocol)-热备份路由协议 是cisco平台一种特有的技术,是cisco的私有协议。 VRRP:(Virtual Router Redundancy Protocol)-虚拟路由冗余协议 是国际标准,由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。 ----------------…

    Linux干货 2016-10-19