![如何使用 mod_proxy 让 Apache 对特定 URL 使用自定义端口?](https://linux22.com/image/565462/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20mod_proxy%20%E8%AE%A9%20Apache%20%E5%AF%B9%E7%89%B9%E5%AE%9A%20URL%20%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我有一个 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>
答案1
抱歉,不可能。
客户端连接的端口由客户端而不是服务器决定 - Apache 无法在客户端浏览器中更改此行为。端口 80 始终是 的隐含端口http://
,端口 443 始终是 的隐含端口https://
。
您可以30x
将客户端重定向到:8200
,或将代理连接从 80 反向到 8200..但这些方法可能毫无意义,具体取决于您想要完成的任务。
答案2
您可以使用 mod_alias 或 mod_proxy 并设置类似内容:
which apache 将指向不同的 docroot
Alias /somepath "/usr/local/www/somepath"
尽管http://mydev.net仍将指向通常的 docroot
或者,如果在端口 8200 上运行的服务不是 apache,而是其他服务,同样,你想在默认端口上访问,则可以使用 mod_proxy 将请求从端口 80 反向代理到 8200
如果您希望同一个域名仅从您的机器指向不同的东西(例如,您想在真实域名上测试您网站的开发代码库),唯一真正的选择是在不同的 IP 地址上设置网站的第二个版本,然后使用本地主办方文件在客户端机器上,误导第二个 IP 地址的域名。