Domain

如何使用不同的伺服器為不同的頁面提供服務

  • January 4, 2016

我喜歡不時地做一些測試,我喜歡用不同的語言嘗試新事物,但我只有一台伺服器。

我想從 1 個伺服器(最好是 apache,因為它目前是 wordpress 和其他一些 php 的東西)和來自不同伺服器的其他頁面(WEBRick、django,也許還有其他東西)為我的主要網站提供服務。

它將全部執行在同一台主機上,如果所有這些都執行在埠 80 上,我更願意。除此之外,我可以做任何最好的事情。子域工作(目前我在子域上使用 phusion 乘客作為 rails 的東西),不同的伺服器端文件夾可以工作(example.com/stuff)。

假設用域/子域來做這一切是最容易的,這不是問題。我只需要知道如何將特定子域的請求發送到不同的伺服器。我還可以更改 iptables 配置(不確定是否有幫助)。

為了使用兩個不同的 Web 伺服器,您需要處理 Apache 反向代理。將您的主伺服器(例如 Apache)設置為埠 80,並讓它管理您的所有主站點。在另一個埠(如 81)上為其他站點設置另一個 Web 伺服器(nginx)。

在您的 Apache 配置中,您需要設置一個將 ReverseProxy 連接到其他 Web 伺服器的 VirtualHost。例如:

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com

   ProxyPreserveHost On
   ProxyPass / http://localhost:81/
   ProxyPassReverse / http://localhost:81/
</VirtualHost>

此配置的作用是告訴 Apache 查看位於 localhost:81 的 Web 伺服器,並代理所服務的頁面。ProxyPreserveHost 很重要,因為它將主機名傳遞給其他 Web 伺服器,因此您也可以在那裡擁有多個 VirtualHost。

引用自:https://serverfault.com/questions/745912