nginx子pathredirect到wordpress docker容器
背景
我正在为我们在Nginx上运行的现有网站添加Dockerized博客堆栈(Wordpress + MariaDB)。 location /
已经提供了网站,并且我被指示将逻辑添加到Nginxconfiguration,其中/blog
将所有stream量redirect到Docker容器。
尝试1
- 我在服务器上的
localhost:9999
上启动了wordpress容器。 - 使用引用我添加了额外的逻辑:
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; }
问题:
WordPress的redirecthttp://server/blog
http://wp-admin/install.php
,因为没有规则,我得到了404。
尝试2
我将location
更改为stream程/blog
以及任何包含wp-.*
URL。 假设是所有的WordPress的页面将具有该url。
location ~ ^/(blog|wp-.*) {
这工作通过WordPress的设置。 如果我明确地访问http://server/wp-admin
我可以去博客pipe理页面。
问题:
- WordPress的博客页面不满足上面的正则expression式,并返回一个404。例如
http://server/?p=31
是一个博客文章的链接。
尝试3
只是为了它,我redirectlocation /
到Docker容器和博客完美。 但不幸的是,这不是我所说的问题。
题
接下来我要做什么?为了满足所有针对WordPress的特定要求? 我觉得在这里可能会有一个更优雅的解决scheme时,我正在进入一个战斗正则expression式的循环。
参考
- nginx代理传递子path不redirect
- 我怎样才能在NGINXconfiguration中的两个位置有相同的规则?
- nginxredirect到docker容器
根据一个自我回答的问题https://stackoverflow.com/a/41479776/1264360
// 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'];