Linux

將子域重定向到同一伺服器不同埠上的服務

  • October 8, 2016

我有一個有 1 個 IP 的 VPS。如果我執行兩個套接字伺服器,一個在埠 8080 上,另一個在埠 8081 上,有沒有辦法可以將 service1.mydomain.com 映射到埠 8080 上的套接字伺服器,將 service2.mydomain.com 映射到埠 8081 上的套接字伺服器?

我沒有執行網路伺服器,而是埠 8080 上的 websocket 伺服器和 8081 上的套接字伺服器。

我以前看過這個問題,但它似乎總是關於 Apache,我可以在其中編輯 VirtialHosts 文件。因為我沒有使用 Apache,所以我不能這樣做。

是否有可能做到這一點?還是我必須繼續使用 mydomain.com:8080 和 mydomain.com:8081?

伺服器正在執行 Debian 8。

謝謝

您不能直接使用 DNS 名稱來映射特定埠,在這種情況下,您有多個 DNS 名稱的單個 IP。

您最好的選擇是設置ApacheNGinx作為反向代理來根據“主機標頭”(或伺服器名稱)映射服務埠。

這是一個範例Apache

<VirtualHost *:80>
       ServerName service1.mydomain.com
       ProxyPreserveHost On
       ProxyPass / http://service1.mydomain.com:8080/
       ProxyPassReverse / http://service1.mydomain.com:8080/
</VirtualHost>

<VirtualHost *:80>
       ServerName service2.mydomain.com
       ProxyPreserveHost On
       ProxyPass / http://service2.mydomain.com:8081/
       ProxyPassReverse / http://service2.mydomain.com:8081/
</VirtualHost>

因此,您需要在 Websocket 伺服器前設置一個反向代理。


你會得到 :

  • http://service1.mydomain.com映射和服務 http://service1.mydomain.com:8080

  • http://service2.mydomain.com映射和服務 http://service2.mydomain.com:8081

對最終使用者透明。

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