- 系统:CentOS 6.8 和 Centos Web 面板
- 服务器:阿帕奇
- 服务器IP:10.0.0.150
我有 的公共 URLsub.domain.com/folder
并且我需要代理/重写/映射到10.0.0.253/folder
。
我想sub.domain.com/folder
显示内部服务器文件夹的内容。我不想sub.domain.com
显示任何内容,只显示文件夹。我该怎么做?
大多数示例都假设相关文件夹位于localhost
服务器上。在我的示例中,Apache 应充当 WAN 客户端和 LAN 服务器之间通信的反向代理。
答案1
以前的答案给了我一些提示,但由于我正在使用 Centos Web Panel,所以这个答案针对的是这个系统。
适用于 Centos Web Panel
在 Centos Web Panel 中重新编译 Apache,并包含以下选项:
--enable-proxy
--enable-proxy-connect
--enable-proxy-ftp
--enable-proxy-http
然后,在 vhosts 配置(Apache 设置下)中,将其添加到 vhost:
<VirtualHost>
....
ProxyPreserveHost On
ProxyPass /folder/ http://IP/internal_folder/
ProxyPassReverse /folder/ http://IP/internal_folder/
</VirtualHost>
在哪里:
知识产权- 服务器的 IP 地址或主机名,
/文件夹/- 您想要“映射”的文件夹(即:公共 - domain.com/folder/,内部服务器 - IP/internal_folder/)
笔记:不要忘记尾随/文件夹或主机名之后。
答案2
虽然不是 100%,但你可以尝试这个:
尝试将以下内容添加到 /etc/apache2/sites-available/000-default.conf
<VirtualHost>
....
ProxyPreserveHost On
ProxyPass /folder http://10.0.0.253/folder
ProxyPassReverse /folder http://10.0.0.253/folder
</VirtualHost>
重新启动服务器并尝试访问sub.domain.com/folder
笔记:
您可能需要安装并激活它
安装:
aptitude install -y libapache2-mod-proxy-html libxml2-dev
启用:
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
希望它对你有用。
编辑(适用于 Centos Web Panel)
在 Centos Web Panel 中重新编译 Apache,并包含以下选项:
--enable-proxy
--enable-proxy-connect
--enable-proxy-ftp
--enable-proxy-http
然后,在 vhosts 配置(Apache 设置下)中,将其添加到 vhost:
<VirtualHost>
....
ProxyPreserveHost On
ProxyPass /folder/ http://IP/internal_folder/
ProxyPassReverse /folder/ http://IP/internal_folder/
</VirtualHost>
在哪里:
知识产权- 服务器的 IP 地址或主机名,
/文件夹/- 您想要“映射”的文件夹(即:公共 - domain.com/folder/,内部服务器 - IP/internal_folder/)
笔记:不要忘记尾随/文件夹或主机名之后。