nginx subpath to redirect to wordpress docker container
According to a self-answered SO question https://stackoverflow.com/a/41479776/1264360
// add these lines to wp-config.phpdefine('WP_SITE_URL', 'http://example.com/blog');define('WP_HOME', 'http://example.com/blog');$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
Suppose you want to have your wordpress website accessible via wp
subdirectory. For example:
Here is how I managed to get this working without altering wp-config.php. The key is to use working_dir
directive.
docker-compose.yml
version: '3'services: nginx: image: nginx:1.17 container_name: nginx restart: unless-stopped depends_on: - wordpress ports: - '80:80' networks: - app-network volumes: - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro db: image: mysql:5.7 container_name: db volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress networks: - app-network wordpress: container_name: wordpress depends_on: - db image: wordpress:latest restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress working_dir: /var/www/html/wp volumes: - wordpress:/var/www/html/wp networks: - app-networknetworks: app-network: driver: bridgevolumes: db_data: wordpress:
nginx.conf
events {}http { server { listen 80; location /wp/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://wordpress; } }}