解决线上服务器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)
上一篇 2017-01-11 14:39
下一篇 2017-01-12 11:30

相关推荐

  • 网络班N22期第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;     [root@bogon ~]# fdisk /dev/sde   &nb…

    Linux干货 2016-10-17
  • MySQL/MariaDB数据库备份与恢复

    前言 数据库一般存放着企业最为重要的数据,它关系到企业业务能否正常运转,数据库服务器总会遇到一些不可抗拒因素,导致数据丢失或损坏,而数据库备份可以帮助我们避免由于各种原因造成的数据丢失或着数据库的其他问题。本文将讲解MySQL/MariaDB数据库的几种备份方法。 基础知识 备份类型 完全备份:备份整个数据库 部分备份:仅备份其中的一张表或多张表 增量备份:…

    系统运维 2015-05-23
  • Linux帮助文件的使用、history变量的使用和FHS

    怎样利用帮助文件来查询想要了解的信息? 这里以通过查找帮助文件来修改登陆信息为例子, 登陆的时候,我们可以看到CentOS的的版本和内核信息, 当我们查看该相关文件的时候,会发现,里面的文档和显示的不一致,由此可以了解到,该文档是调用某些参数来实现显示CentOS的版本和内核信息。 这个时候,我们该怎样去查看issue文档的相关信息? 首先我们可以查看一下通…

    Linux干货 2016-08-04
  • 正则表达式grep,sed

    HTTP 一个简单的网页文件 service iptables stop echo “<h1>I  LOVE YOU</h1>” > /var/www/html/index.html 文本排序sort sort 1.txt   排序规则先数字后字母,小写字母在前。 sort -t “:&#82…

    Linux干货 2018-03-13
  • Linux基本文本管理命令

    一.Linux上的文件管理命令都有哪些,其使用的方法及其相关演示1.cp命令:copy (文件复制功能)源文件,目标文件单源复制:cp [OPTION]…[-T] SOURCE DEST多源复制:cp [OPTION]…SOURCE…DIRECTORYcp [OPTION]… -T DIRECTORY SOURCE… 单源复制:cp [OPTION]…[-T…

    2017-09-20
  • sed

    sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。 Sed主要用来自动…

    Linux干货 2017-04-26