Linux
將子域重定向到同一伺服器不同埠上的服務
我有一個有 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。
您最好的選擇是設置
Apache
或NGinx
作為反向代理來根據“主機標頭”(或伺服器名稱)映射服務埠。這是一個範例
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
對最終使用者透明。