1
我遇到了這樣一種情況:我工作的公司希望將其Web服務器分佈在虛擬機上,而不是依靠一個物理盒來完成所有任務。我們目前的設置是這樣的:在單一靜態IP背後的不同機器上的多個網絡服務器
example.com → static IP → internal firewall (only 1 machine may receive port 80 traffic) → 192.168.1.100 (our production box)
example1.com, example2.com, etc... → same as above
我們的生產箱運行的Apache和把輸入名稱,以適當使用VirtutalHost本地文件夾。這可以按預期工作,但爲了性能和安全方面的考慮,我們希望將一些主機移出生產環境。類似下面的設置:
*.example.com → static IP → firewall → 192.168.1.100 (Production)
jira.example.com -> static IP -> firewall -> 192.168.1.100 -> 192.168.1.120
*.example1.com → static IP → firewall → 192.168.1.100 → 192.168.1.111 (Wordpress-1)
*.example2.com → static IP → firewall → 192.168.1.100 → 192.168.1.112 (Wordpress-2)
etc…..
我們試圖類似於192.168.1.100上的虛擬主機文件下面的內容:
<VirtualHost *:*>
ServerName example.com
...
</VirtualHost>
<VirtualHost jira.example.com:*>
ServerName jira.example.com
...
ProxyPass /http://192.168.1.120:80/
ProxyPassReverse/http://192.168.1.120:80/
</VirtualHost>
<VirtualHost example1.com:*>
ServerName example1.com
...
ProxyPass /http://192.168.1.111:80/
ProxyPassReverse/http://192.168.1.111:80/
</VirtualHost>
<VirtualHost example2.com:*>
ServerName example2.com
...
ProxyPass /http://192.168.1.112:80/
ProxyPassReverse/http://192.168.1.112:80/
</VirtualHost>
這部分工作 - 我能使用example1.com交談到Wordpress-1。但是,重定向會導致超鏈接指向example.com,從而導致網站中斷。
當我正在研究DNS時,它似乎可能是一個更好的選擇。是否有可能讓域名提供商(在這種情況下,GoDaddy)指向防火牆後面的DNS服務器,然後適當地引導流量?事情是這樣的:
hostname → static IP → firewall → 192.168.1.100 (DNS) → webserver assigned to hostname
example.com:
NS ns1.example.com.
ns1.example.com. A 192.168.1.100
www A 192.168.1.100
jira.example.com. A 192.168.1.120
example1.com:
NS ns1.example1.com.
ns1.example1.com. A 192.168.1.100
www A 192.168.1.111
example2.com:
NS ns1.example2.com.
ns1.example2.com. A 192.168.1.100
www A 192.168.1.112
這讓我感到非常複雜! (因此容易出錯)是否有一個原因,你不能只是把NGINX盒子放在前面,讓它把所有需要的東西放在哪裏? –
@MichaelB - Nginx看起來很有前景,但它似乎與Apache的虛擬主機做類似的代理。你是否用nginx來表示這樣的事情? 'server { server_name example1.com; listen 80; listen 8080; location/{ proxy_pass $ scheme://192.168.1.111:$ server_port $ uri; proxy_set_header主機$主機; } }' – Jordan