一些信息:
如果我访问 mysite.com:9999,我会得到类似 45.40.45.40:9999 的站点地址。45.40.45.40 是我路由器的公共 IP,后跟用于连接 ubuntu 上 virtualbox 上的 apache 服务器的非标准端口。
我使用 namecheap.com 的 dns 重定向来将 mysite.com 重定向到我的 public_ip:used_port_to_connect_Apache,因此连接后,url 中的值将像这样:45.40.45.40:9999。
我的问题是:如何将“45.40.45.40:9999”转换/返回为仅 mysite.com 的原始域名?
我需要做什么?这是某个 Apache 配置设置吗?它是 Apache 服务器上的虚拟主机。
/etc/apache2/sites-available/mysite.com.conf:
Listen 9999
<VirtualHost *:9999>
<Directory /var/www/mysite.com/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
请帮忙。
答案1
只需将 mysite.com 解析为 45.40.45.40。然后连接到http://mysite.com:9999从您的浏览器。无需重定向。也无需更改路由器或 Apache 配置中的任何内容。
如果您还想隐藏端口号,则必须用反向代理替换您最初执行的重定向。那将是一些侦听端口 80 的服务器(apache、nginx 等),并且代理将请求发送到真正的 Web 服务器。所有请求都将始终通过此反向代理。关于如何设置反向代理,已经有了答案,例如:
然而,这样做需要付出的努力相当大,而您得到的只是 URL 中少了几个字符。