워드프레스 도커 컨테이너로 리디렉션할 nginx 하위 경로
배경
Nginx에서 실행되는 기존 웹사이트에 도커라이즈드 블로그 스택(Wordpress + MariaDB)을 추가하는 작업을 하고 있습니다.location /
이미 웹사이트를 서비스하고 있고, 나는 Nginx config에 논리를 추가하라는 지시를 받았습니다./blog
모든 트래픽을 도커 컨테이너로 리디렉션합니다.
시도 1
- 저는 프레스 컨테이너라는 단어를 시작했습니다.
localhost:9999
서버에서. - 참고문헌을 사용하여 추가 논리를 추가했습니다.
location ^~ /blog { proxy_pass http://localhost:9999; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; }
문제:
워드프레스 리디렉션됨http://server/blog
로.http://wp-admin/install.php
, 규칙이 없어서 404를 받았습니다.
시도2
제가 바꿨습니다.location
처리하다/blog
다음을 포함하는 URL 뿐만 아니라wp-.*
. 모든 워드프레스 페이지에는 해당 URL이 있을 것으로 가정합니다.
location ~ ^/(blog|wp-.*) {
이것은 워드프레스 설정을 통해 작동했습니다.그리고 내가 명시적으로 방문한다면,http://server/wp-admin
블로그 관리 페이지로 갈 수 있습니다.
문제:
- Wordpress 블로그 페이지가 위의 정규어를 충족하지 않으며, 404를 반환합니다.
http://server/?p=31
는 블로그 게시물에 대한 링크입니다.
시도 3
그냥 그 일 때문에 제가 방향을 바꿨습니다.location /
도커 컨테이너로 이동하면 블로그가 완벽하게 작동합니다.하지만 슬프게도 그것은 제가 가지고 있는 문제의 진술이 아닙니다.
질문.
다음으로 워드프레스별 요청을 모두 처리하려면 어떻게 해야 합니까?여기에 더 우아한 해결책이 있을 때, 저는 반란군들과 싸우는 고리에 빠져들고 있는 것 같습니다.
참고문헌
https://stackoverflow.com/a/41479776/1264360 에서 자체적으로 답변한 SO 질문에 따르면,
// add these lines to wp-config.php
define('WP_SITE_URL', 'http://example.com/blog');
define('WP_HOME', 'http://example.com/blog');
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
다음을 통해 워드프레스 웹사이트에 접근하기를 원한다고 가정합니다.wp
서브디렉토리예를 들어,
wp-config.php를 변경하지 않고 이 작업을 수행할 수 있었던 방법은 다음과 같습니다.핵심은 사용하는 것입니다.working_dir
지시의
도커- 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-network
networks:
app-network:
driver: bridge
volumes:
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;
}
}
}
언급URL : https://stackoverflow.com/questions/47724924/nginx-subpath-to-redirect-to-wordpress-docker-container
'programing' 카테고리의 다른 글
jQuery의 removeAttr로 여러 특성 제거 (0) | 2023.11.04 |
---|---|
if 조건의 쉼표 연산자 (0) | 2023.11.04 |
스위프트를 가능하게 하는 것UI의 DSL? (0) | 2023.11.04 |
"ui-sref"는 링크를 두 번 클릭해도 "ui-view"(컨트롤러가 다시 실행되지 않음)를 새로 고치지 않습니다. (0) | 2023.11.04 |
스프링 부트 탄성 검색 구성 (0) | 2023.11.04 |