Nginx

使用 nginx 和 mariadb 在子目錄中設置 wordpress 容器

  • March 26, 2018

好的,問題是:我的網路伺服器使用這樣的子目錄方法為網站、cms 和移動應用程序 api 提供服務

  • 本地主機-> 站點
  • 本地主機/cms
  • 本地主機/api

一切都是使用 docker compose 建構的

services:
 server:
   build: ./docker/nginx
   links:
     - fpm
   ports:
     - 80:80
     - 443:443

 fpm:
   build: ./docker/php
   links:
     - database
     - smtp

 database:
   build: ./docker/mariadb
   volumes:
     - dbdata:/var/lib/mysql

volumes:
 dbdata:

**我想做的是添加2個新容器:**一個用於wordpress,一個用於wordpress db ,以便代理將每個請求傳遞給mydomain.dom/blog到wordpress容器。 我能夠使用如下所示的 nginx 配置傳遞請求,但不幸的是,我正在與不斷將所有內容重定向到 localhost 而不是 localhost/blog 的容器進行鬥爭,我想我在 wordpress 中缺少一些配置。

location /blog/ {
   proxy_http_version 1.1;
   proxy_buffering off;
   proxy_read_timeout    90;
   proxy_connect_timeout 90;
   proxy_redirect        off;
   proxy_pass http://blog:80; # the wordpress container name

   proxy_set_header Host $host;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection $proxy_connection;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
   proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
   proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;

   # Mitigate httpoxy attack (see README for details)
  proxy_set_header Proxy "";
}

# Cms stuff
location /cms/ {
   try_files $uri $uri/ /staff/index.php?$args;

   include _php.conf; # php-fpm setup
}

# Site stuff
location / {

   try_files $uri $uri/ /index.php?$args;

   include _php.conf; # php-fpm setup
}

您需要告訴 WordPress 要使用的新基本 url。最簡單的方法是將以下兩行添加到 wordpress 基本目錄中的 wp-config.php 中:

define('WP_HOME','http://example.com/blog');
define('WP_SITEURL','http://example.com/blog');

引用自:https://serverfault.com/questions/904621