繁体   English   中英

Nginx作为Wordpress的负载平衡器,无法提供静态文件

[英]Nginx as loadbalancer for wordpress, error serving static files

我正在使用以下堆栈在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加载的。

例如,在浏览器控制台中,我看到类似以下内容的内容:

GET http://wploadbalance/wp-includes/js/wp-util.min.js?ver=4.4 net :: ERR_NAME_NOT_RESOLVED

由于无法从外部wploadbalance容器访问wploadbalance因此应通过某种方式对wordpress说静态文件是从my.site.com 有谁知道如何实现这一目标?

解:

  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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM