Apache 將子域連結到網站和遊戲伺服器
您好我正在嘗試將我的子域(例如 mc.mywebsite.co.uk)連結到我的遊戲伺服器和網站。
我已經設法使用 virtualhost proxypass 將它連結到我的遊戲伺服器
/etc/apache2/sites-enabled/mc.mywebsite.co.uk.conf
<VirtualHost *:80> ServerAdmin admin@domain.com ServerName mc.mywebsite.co.uk ServerAlias mc.mywebsite.co.uk ProxyRequests Off #ProxyPass / http://localhost:25565/ <Location /> ProxyPreserveHost On ProxyPass http://mywebsite.co.uk:25565/ ProxyPassReverse http://mywebsite.co.uk:25565/ </Location> # Uncomment the line below if your site uses SSL. #SSLProxyEngine On
在這種情況下,我可以通過 mc.mywebsite.co.uk 連接到遊戲伺服器
但是,當我在網路瀏覽器中輸入 mc.mywebsite.co.uk 時,出現以下錯誤
Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /. Reason: Error reading from remote server Apache/2.4.18 (Ubuntu) Server at mc.mywebsite.co.uk Port 80
我還是新手,如果我錯過了什麼,我很抱歉。你們知道我在做什麼錯嗎?
謝謝。
可能發生的情況是,您正在為 minecraft 提供
mc.mywebsite.co.uk
DNS 解析到的 url,YOUR_IP_ADDRESS:80
因此它通過埠 80 連接到 minecraft 伺服器,該埠通過 apache 連接(或者更可能它只是告訴請求它需要去哪裡)到http://localhost:25565/
. 除非您託管多個網站,否則您根本不應該通過 apache 路由請求,只需在防火牆上打開埠 25565,並在我的世界中通過 mc.mywebsite.co.uk:25565 連接到伺服器,DNS 將解析到YOUR_IP_ADDRESS:25565
哪個是您的 minecraft 伺服器的正確位置。任何試圖訪問您的網站的人都將通過瀏覽器進行訪問,該瀏覽器將以埠 80(或 443,如果 ssl)為目標,並通過您將託管您的網站的 apache 進行連接。https://httpd.apache.org/docs/current/vhosts/examples.html
或者喜歡這樣做,我猜
# Ensure that Apache listens on port 80 Listen 80 Listen 420 <VirtualHost *:80> DocumentRoot "/www/html" ServerName mc.mywebsite.co.uk # Other directives here </VirtualHost> <VirtualHost *:420> ServerAdmin admin@domain.com ServerName mc.mywebsite.co.uk ServerAlias mc.mywebsite.co.uk ProxyRequests Off #ProxyPass / http://localhost:25565/ <Location /> ProxyPreserveHost On ProxyPass http://mywebsite.co.uk:420/ ProxyPassReverse http://mywebsite.co.uk:420/ </Location> </VirtualHost>
但你明白我的意思嗎?它只是接受埠 420 上的連接並將其發送到埠 25565。
使用 mc.mywebsite.co.uk:420 連接到 minecraft 並連接到 mc.mywebsite.co.uk 的網站