我正在使用以下堆栈在 docker 上设置一个简单的环境:
- nginx作为负载均衡
- wordpress 实例
- mysql
我的简单 docker compose 文件如下:
nginx:
build: ../nginx
links:
- wordpress:wordpress
ports:
- "80:80"
- "443:443"
wordpress:
image: wordpress
ports:
- "8082:80"
links:
- mysqlwp:mysql
working_dir: /var/www/html
#volumes:
# - wp-content/:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
mysqlwp:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
nginx 是从基础镜像构建的,配置如下:
upstream wploadbalance{
least_conn;
server wordpress;
}
server {
listen 80;
server_name my.site.com;
location / {
proxy_pass http://wploadbalance;
}
}
现在,当我连接到 my.site.com 时,我已正确重定向到我的 wordpress 实例,但加载了http://wploadbalance
无法访问的静态文件。
例如,在我的浏览器控制台中,我看到类似的内容:
获取
http://wploadbalance/wp-includes/js/wp-util.min.js?ver=4.4
网络::ERR_NAME_NOT_RESOLVED
由于wploadbalance
无法从 docker 容器外部访问,因此应该通过某种方式告诉 wordpress 静态文件是从my.site.com
. 有谁知道如何实现这一目标?