环境
环境: 腾讯云(ubuntu)docker( nginx wordpress mysql )
nginx 代理配置
443 -> 8080
问题现象
现象:www.wisper2u.com (301) 无法访问 www.wisper2u.com/wp-admin 可以访问
排查思路:
- 腾讯云防火墙策略
- docker端口映射
- wordpress 配置
- apache2 配置
- nginx 配置
docker端口映射排查
起一个 wp 镜像 local 8080:容器内 80
local 访问不通(其实是通的,后来看日志才发现是重定向,返回结果没有在终端展示)
容器内没有问题
起一个ng的镜像,
docker镜像 从外部访问没有问题,所以 docker 端口映射没问题 那么问题应该出在 wp 镜像上
wordpress 镜像排查
测试 wp 映射端口 80 -> 8080 -> 80 两次80 都是可以的 8080 不行,推测wp镜像会保存端口,但是无法修改
验证:wp 镜像 映射端口从8089 变为8099,是正常的(推翻假设)
问题范围又缩小了,不连数据库啥事没有,连上数据库无法访问(数据库记录并没有问题)
apache2 nginx 排查
wordpress官方镜像内有apaceh2的http服务器,日志如下
ruby
root@a7f695d95ad8:/var/log/apache2# ls -al
total 8
drwxrwxrwt 2 www-data www-data 4096 Feb 13 05:07 .
drwxr-xr-x 1 root root 4096 Feb 16 23:52 ..
lrwxrwxrwx 1 www-data www-data 11 Feb 13 05:07 access.log -> /dev/stdout
lrwxrwxrwx 1 www-data www-data 11 Feb 13 05:07 error.log -> /dev/stderr
lrwxrwxrwx 1 www-data www-data 11 Feb 13 05:07 other_vhosts_access.log -> /dev/stdout
查看docker logs 发现 GET / 全部都是301
nginx access.log 也全部是 301
问题范围再一次缩小
解决方案
隐含条件:wp_option 中 siturl home 与 Header Host 要对应上