Nginx作为wordpress的loadbalancer,错误提供静态文件

时间:2015-12-13 12:37:48

标签: wordpress nginx

我正在使用以下堆栈在docker上设置一个简单的环境:

  • nginx作为负载均衡
  • wordpress instance
  • MySQL的

我的简单docker撰写文件如下:

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服务的。有谁知道如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

<强>解决方案:

  1. 登录容器:

    docker exec -it "name_of_container" bash

  2. 将以下行添加到wp-config.php

    define('WP_HOME', 'http://your_domain.com');

    define('WP_SITEURL', 'http://your_domain.com');