我正在尝试使用 podman-compose(类似于 docker-compose)在生产服务器上部署容器化的 Wordpress。Web 服务在主机的 8080 端口上公开。然后,我利用 Apache 的 ProxyPass 指令创建一个反向代理并将请求发送到 localhost:8080 正在为 WordPress 提供服务的地方,从而使 WordPress 在http://example.com上可用。
我成功地将数据库和 wordpress 卷迁移到服务器。我遇到的第一个问题是 WordPress 将 localhost 存储为wpoptionssiteurl
和home
wpoptions,因此它无法在生产服务器上运行。将这些值更改为 example.com(我的域)后,它会一直重定向到 localhost。疯狂的!这是我的 docker-compose.yaml:
version: "3.8"
services:
web:
image: wordpress
restart: always
volumes:
- wordpress:/var/www/html
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: user
WORDPRESS_DB_NAME: db
WORDPRESS_DB_PASSWORD: mypass
WORDPRESS_DEBUG: 0
depends_on:
- db
networks:
- wpnet
db:
image: mariadb:10.5
restart: always
ports:
- 6603:3306
volumes:
- wpdbvol:/var/lib/mysql
environment:
MYSQL_DATABASE: db
MYSQL_USER: user
MYSQL_PASSWORD: mypass
MYSQL_ROOT_PASSWORD: mypass
networks:
- wpnet
volumes:
wordpress: {}
wpdbvol: {}
networks:
wpnet: {}
这是我的反向代理配置:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ProxyPass "/" "https://localhost:8080"
#Allows modification of Location: headers from backend server to point to the reverse proxy
ProxyPassReverse "/" "http://localhost:8080"
</VirtualHost>