如何解决Nginx反向代理深度链接在Docker上的Wordpress
我正在尝试通过Docker在Digital Ocean上运行Wordpress。一切都很好,我很快就启动并运行了它,如下所示:
version: '3.3'
services:
wordpress:
depends_on:
- db
image: wordpress:5.5.1-php7.2-apache
container_name: wp
restart: always
volumes:
- ./www/wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: ${DB_PWD}
ports:
- 3010:80
networks:
- network
db:
image: mysql:5.7
container_name: db
restart: always
volumes:
- ./dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${DB_PWD}
networks:
- network
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
container_name: pma
restart: always
ports:
- 3011:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: ${DB_PWD}
UPLOAD_LIMIT: 20000000
networks:
- network
networks:
network:
volumes:
db_data:
在Digital Ocean小滴上,我将Nginx配置为反向代理:
server {
listen 80;
listen [::]:80;
server_name my.test.url;
location / {
rewrite /(.*) /$1 break;
proxy_pass http://localhost:3010;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
我已经有my.test.url指向液滴的IP。 我将数据库中wp_options表中的“ siteurl”和“ home”记录更新为my.test.url
这一切都很好,如果我访问my.test.url,则可以访问主页。但是,当我访问诸如my.test.url / example之类的深层链接时,我被重定向到127.0.0.1/example,显然没有任何运行。
我不知道如何进行;我以为在nginx配置中设置重写规则可以解决问题,但可惜。
我应该提到我想在Digital Ocean Droplet上运行多个站点,每个站点都通过自己的端口提供服务,因此不能选择仅从80端口提供服务。
有人能指出我正确的方向吗?
解决方法
事实证明,上面的配置是正确的;问题是DNS错误和Wordpress永久链接设置结合在一起,该设置要求在帖子名称后添加斜杠。这导致服务器上的DNS查找失败,导致重定向到127.0.0.1 ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。