是的,可以将Apache虚拟主机设置重定向到Docker容器。以下是基本的步骤:
确保已经安装并配置好Apache服务器、Docker和Docker Compose。
创建Docker镜像并在容器中运行网站代码。可以使用Dockerfile和docker-compose.yml文件。以下是示例Dockerfile文件:
FROM httpd:2.4
COPY ./public-html/ /usr/local/apache2/htdocs/
以下是示例docker-compose.yml文件:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./public-html:/usr/local/apache2/htdocs/
ports:
- "8080:80"
ServerName example.com
ProxyPreserveHost On
Order allow,deny
Allow from all
ProxyPass / http://web:80/
ProxyPassReverse / http://web:80/
在上述示例中,我们将ServerName设置为example.com。ProxyPass指令将HTTP请求转发到命名为'web”的Docker容器的容器端口80上,并使用ProxyPassReverse指令设置响应。这将确保返回给客户端的响应正确地映射到虚拟主机。
参考文献: https://httpd.apache.org/docs/2.4/mod/mod_proxy.html https://docs.docker.com/compose/overview/