如何使用 mod_proxy 让 Apache 对特定 URL 使用自定义端口?

如何使用 mod_proxy 让 Apache 对特定 URL 使用自定义端口?

我有一个 IP 地址,比如 10.10.55.55

我希望我的 VM 在使用特定 URL 时使用特定端口,但不必指定端口。

因此,我不会说 mydev.net:8200,而是说 mydev.net(以访问文档根目录),并暗示端口。我该如何使用 Apache 2 做到这一点?

<VirtualHost *:8200>
        ServerAdmin [email protected]
        DocumentRoot /var/www/html-8200/
        ServerName mydev.net
        ServerAlias www.mydev.net
        AllowEncodedSlashes On    
        RewriteEngine on
        RewriteOptions Inherit
</VirtualHost>

http://mydev.net=>http://mydev.net:8200

答案1

抱歉,不可能。

客户端连接的端口由客户端而不是服务器决定 - Apache 无法在客户端浏览器中更改此行为。端口 80 始终是 的隐含端口http://,端口 443 始终是 的隐含端口https://

您可以30x将客户端重定向到:8200,或将代理连接从 80 反向到 8200..但这些方法可能毫无意义,具体取决于您想要完成的任务。

答案2

您可以使用 mod_alias 或 mod_proxy 并设置类似内容:

http://mydev.net/somepath

which apache 将指向不同的 docroot

Alias /somepath "/usr/local/www/somepath"

尽管http://mydev.net仍将指向通常的 docroot

或者,如果在端口 8200 上运行的服务不是 apache,而是其他服务,同样,你想在默认端口上访问,则可以使用 mod_proxy 将请求从端口 80 反向代理到 8200

如果您希望同一个域名仅从您的机器指向不同的东西(例如,您想在真实域名上测试您网站的开发代码库),唯一真正的选择是在不同的 IP 地址上设置网站的第二个版本,然后使用本地主办方文件在客户端机器上,误导第二个 IP 地址的域名。

相关内容