如何解决使用NGINX作为反向代理,以通过使用docker-compose结果将Directus运行到重写或内部重定向周期
使用here中所述的docker-compose和Nginx作为代理安装了Directus
文件 docker-compose.yaml
version: "3"
networks:
directus:
services:
MysqL:
image: MysqL:5.7
environment:
MysqL_DATABASE: "directus"
MysqL_USER: "directus"
MysqL_PASSWORD: "directus"
MysqL_ROOT_PASSWORD: "directus"
ports:
- "3306:3306"
networks:
- directus
directus:
image: directus/directus:v8-apache
ports:
- "9090:80"
container_name: directus
environment:
DIRECTUS_APP_ENV: "production"
DIRECTUS_AUTH_PUBLICKEY: "some random secret"
DIRECTUS_AUTH_SECRETKEY: "another random secret"
DIRECTUS_DATABASE_HOST: "MysqL"
DIRECTUS_DATABASE_PORT: "3306"
DIRECTUS_DATABASE_NAME: "directus"
DIRECTUS_DATABASE_USERNAME: "directus"
DIRECTUS_DATABASE_PASSWORD: "directus"
volumes:
- ./data/config:/var/directus/config
- ./data/uploads:/var/directus/public/uploads
networks:
- directus
Nginx:
image: Nginx
depends_on:
- directus
container_name: Nginx
volumes:
- ./data/ntemplates:/etc/Nginx/templates
- ./directus.conf:/etc/Nginx/conf.d/default.conf
ports:
- "8080:80"
networks:
- directus
文件 directus.conf
server {
#/etc/Nginx/conf.d/directus.conf
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass "http://directus:9090/";
}
}
http:// localhost:9090正常工作时,通过http:// localhost:8080尝试执行相同操作时,结果进入HTTP 5xx内部服务器错误
Nginx报告
[错误] 2#2:* 6重写或内部重定向周期,同时内部重定向到“ /index.PHP”,客户端:172.26.0.1,服务器:localhost:9090,请求:“ GET /favicon.ico HTTP / 1.1“,主机:” localhost:8080“,引荐来源网址:” http:// localhost:8080 /“
解决方法
我已经使用您的compose文件启动了堆栈,并且运行得非常顺利。不幸的是,没有重定向问题,但由于端口错误,nginx返回了502:
location / {
proxy_pass "http://directus:9090/";
}
9090端口在主机上,而不在容器中。您必须将其更改为80或完全删除。
对于重定向问题,其来源超出了您到目前为止提供的内容。我最好的猜测是它在./data/ntemplates
中。如果存在扩展名为.template
的文件,nginx容器中的脚本将为其配置文件。
我的第二个最佳猜测是它在./data/config
中,因为我没有这些文件。
感谢提供撰写文件,它为我节省了很多时间来准备此答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。