Apache虚拟主机是否可以设置为重定向到Docker容器



我有一个运行Apache的Docker容器,它当前正在侦听端口80。

我正试图在同一台服务器上运行另一个网站,这次使用Apache本机,也在监听端口80。

问题是,我不能让两个应用程序都监听同一个端口(Docker和Apache(。

我可以设置服务器的本地Apache安装,以便根据域名在内部将某些请求重定向到我的Docker容器吗?例如,Apache将监听端口80,对mycontainer.com的请求将在内部传输到Docker将监听的端口9999

是的,你可以做到。我第一次想测试时,我就是这样做的,而且工作没有问题。

我们有一个运行到端口80的Apache容器,让我们调用另一个域,如mycontainer.com,我们也想在端口80上访问它,但无法访问。

无论您如何运行这些容器,我指的是docker rundocker-compose,但关键是它们应该在同一网络中。

创建一个名为my_network:的网络

docker network create my_network

我称第一个Apache为main,后者为the_name

现在让我们在同一个网络中运行:

docker run --name main --network my_network httpd
docker run --name the_name --network my_network another_image

现在,您可以执行到the_name容器中,并在Apache conf路径中创建一个domain.conf文件,其中包含以下内容:

<VirtualHost *:80>
ServerName mycontainer.com
ProxyPreserveHost On
ProxyPass "/" "http://the_name:9999/"
ProxyPassReverse "/" "http://the_name:9999/"
ProxyRequests Off
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我想使用Apache命名的虚拟主机和Proxy Pass是可能的。你可以试试下面这样的东西。只需确保您启用了apachemod_proxy

NameVirtualHost *:80
<VirtualHost *:80>
ServerName app-running-in-docker-container.com
ErrorLog "var/log/container_error_log"
CustomLog "var/log/container_access_log" common
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:999
ProxyPassReverse / http://127.0.0.1:999
</VirtualHost>
<VirtualHost *:80>
ServerName app-running-natively.com
DocumentRoot /path/to/project/doc/root
ErrorLog "var/log/nativelyapp_error_log"
CustomLog "var/log/nativelyapp_access_log" common
</VirtualHost>

相关内容

  • 没有找到相关文章

最新更新