【发布时间】:2019-07-26 13:57:34
【问题描述】:
我想通过不同的 URL 访问我的 /wp-admin,例如 /admin。
如果我执行localhost:5000/admin,我会被重定向到localhost:8000/wp-admin,要求我应该在那个确切的 URL 上看到 Wordpress 管理面板。
我正在使用docker-compose 和nginx。
我的nginx.conf 文件如下所示:
events { worker_connections 1024; }
http{
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
listen [::]:80;
server_name localhost;
location ~* /admin {
rewrite ^/admin/(.*) /wp-admin last;
proxy_pass http://wordpress;
proxy_set_header Access-Control-Allow-Origin *;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
}
我的 docker-compose.yml 文件是:
version: '2'
services:
db:
image: mysql:5.6
restart: unless-stopped
volumes:
- ./backend/db/db_data:/var/lib/mysql
- ./backend/db/init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: p4ssw0rd!
MYSQL_DATABASE: wordpress
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: unless-stopped
ports:
- 8081:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: p4ssw0rd!
wordpress:
depends_on:
- phpmyadmin
- db
image: wordpress
restart: unless-stopped
volumes:
- ./backend/wordpress/wp-content:/var/www/html/wp-content
- ./backend/wordpress/.htaccess:/var/www/html/.htaccess
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
WORDPRESS_TABLE_PREFIX: ab_
WORDPRESS_CONFIG_EXTRA:
define('JWT_AUTH_SECRET_KEY', 'secret');
define('JWT_AUTH_CORS_ENABLE', true);
define('WP_ALLOW_REPAIR', true );
ports:
- 8000:80 # Expose http and https
- 8001:443
nginx:
build: ./backend/nginx
volumes:
- ./backend/nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- "5000:80"
links:
- wordpress
- frontend
depends_on:
- wordpress
- frontend
不是nginx 专家,因此我们不胜感激。
【问题讨论】:
-
试试:
rewrite ^/admin(/.*)?$ /wp-admin$1 break; -
如果我这样做,我会被重定向到
http://localhost/wp-admin/
标签: wordpress docker nginx docker-compose