解決線上服務器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.www58058.com/66427

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

相關推薦

  • 初學Linux之熟悉文件系統

    每一個具有存儲數據功能的設備,都是有文件系統的,文件系統,規定了數據的儲存的策略,以便數據有條不紊的記錄保存。為了深入的學習Linux,我們必定要了解其文件系統,其中包括:文件系統結構元素;文件的創建和查看;文件刪除、復制、移動等操作;管理文件的方式;軟鏈接和硬鏈接。

    2017-11-26
  • Linux的發展史

       在早期電氣化發展時代1946年誕生了計算機事物,早期的計算機體積巨大,只能適用于一個人操作,而且運行速度慢。但已經形成計算機的架構體系,為了盡可能的榨干計算機資源在計算機發展的二階段,于是有當時著名實驗室BELL ,GE,MIT共同研發了一款叫MULTCS操作系統,這也是最早的操作系統。   1946年一個沒有完成的夢想,…

    Linux干貨 2016-10-13
  • 第一周作業

    描述計算機的組成及其功能。 由馮~諾伊曼提出計算機體系結構,計算機主要由控制器、運算器、存儲器、輸入設備、輸出設備五大硬件組成。 控制器(Controller):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器(Datapath):運算器的功能是對數據進…

    Linux干貨 2017-02-07
  • bash腳本編程之流程控制if、for、while、until簡介

    概述     之前介紹了一些bash腳本編程的變量、運算、條件測試的一些基礎內容,了解了腳本實際上就是一些語句加上一些流程控制組合起來,實現某種功能的可執行文件。我們知道,條件測試的目的,實際就是為了實現一種流程的控制,那么本篇就簡單介紹一下bash里面常見的流程控制語句,包括選擇、循環等內容,具體包括以下幾個部分: …

    Linux干貨 2016-08-18
  • 第一周作業

    1、描述計算機的組成及其功能 答:計算機主要有5大組件構成: 1) 計算器:用戶數據計算,主要是指CPU 2) 控制器:用于控制數據流或者指令流,控制計算機系統的各個組件的協同工作以及信息的流動,如各種控制芯片(南橋,北橋等) 3) 存儲器:用戶數據的存放,如內存 4) 輸入設備:如鍵盤,鼠標等 5) 輸出設備:如顯示器,外置的存儲設備( 硬盤,光…

    Linux干貨 2016-10-30
  • N22-網絡班 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2、編輯/etc/group文件,添加組hadoop。…

    Linux干貨 2016-09-19
欧美性久久久久