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

一、简述

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

二、解决思路

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

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

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

2、所以nginx反代httpdresin具体的配置如下;

  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
下一篇 2017-01-12

相关推荐

  • 22期第8周课堂练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     2、IP地址的分类有哪些?子网掩码的表示形式及其作用   A类:第一段为网络号,后三段为主机号            网络号0 000 0000 – 0 111 1111…

    Linux干货 2016-10-09
  • linux基础

    1.计算机的组成及其功能。 计算机的主要组成部分可以归纳为以下五个部分:控制器、运算器、存储器、输入设备、和输出设备。 控制器 是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器 运算器的功能是对数据进行各种算术运算…

    Linux干货 2016-08-15
  • 深入了解磁盘结构

    一、     linux中常见的磁盘:   无论什么操作系统,归根还是要落实与磁盘上的,对于磁盘的管理也是linux管理必备的一项技能。在linux中“一切皆文件”的思想贯彻整个linux的学习中,包括像是磁盘等的硬件也是在linux的/dev/目录下类似于文件形式的存放,常见的SATA口USB优盘或是SCS…

    Linux干货 2016-08-29
  • TCP 的那些事儿(上)

       TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另…

    Linux干货 2015-04-01
  • 对inode的初步理解

    1.什么是inode?     inode中文译作”索引节点“,是linux操作系统中的一种数据结构,用来存储文件的元数据信息。在linux系统中每个文件都会分配一个inode,我们也可以把inode看作指针,它永远指向文件的具体存储位置。 2.inode中包含了什么信息? * inode 编号 * 用来识别文件类型,以及用于 …

    2017-07-18
  • ansible的入门使用手册

    ansible1

    2018-01-15