如何在 Apache(CentOS Web 面板)中将外部子文件夹映射到不同的服务器(LAN)子文件夹

如何在 Apache(CentOS Web 面板)中将外部子文件夹映射到不同的服务器(LAN)子文件夹
  • 系统: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/)

笔记:不要忘记尾随/文件夹或主机名之后。

相关内容