docker - 带有自定义配置文件的 Docker Nginx:未知指令“服务器”
问题描述
我正在尝试实现 Django / Gunicorn / Nginx dockerized。对于 Django gunicorn 和 postgresql 来说,一切都很好。但是 Nginx 决定不工作。
我制作了一个自定义的 Nginx 配置文件,它给了我错误:
未知指令“服务器”
所以我最大程度地改变了它,用 docker run 代替 docker compose 来尝试。我做了一个 Dockerfile,因为似乎卷挂载不起作用但结果相同。
这是码头文件:
FROM nginx:1.19.0-alpine
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
和 nginx.conf
server {
listen 80;
location / {
proxy_pass http://127.0.0.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
很简单。但是,如果我尝试运行这个 docker:
docker build -t nginx .
docker run nginx
还是同样的错误。
以下是运行命令的完整日志:
docker-entrypoint.sh:/docker-entrypoint.d/ 不为空,将尝试执行配置 /docker-entrypoint.sh:在 /docker-entrypoint.d/ 中寻找 shell 脚本 /docker-entrypoint.sh:正在启动 / docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh:获取 /etc/nginx/conf.d/default.conf 10 的校验和-listen-on-ipv6-by-default.sh:/etc/nginx/conf.d/default.conf 与软件包版本不同,退出 /docker-entrypoint.sh:正在启动 /docker-entrypoint.d/20-envsubst -on-templates.sh /docker-entrypoint.sh:配置完成;准备启动 2021/02/06 13:58:21 [emerg] 1#1:/etc/nginx/conf.d/default.conf:1 中的未知指令“upstream”:1 nginx:[emerg] 未知指令“upstream” " 在 /etc/nginx/conf.d/default.conf:1
我花了将近 6 个小时在上面,可能读了一半的 StackOverflow 没有结果。
有什么拯救生命的想法吗?
解决方案
好的 终于明白了。
我删除了完整的 .conf 文件,并且没有直接使用 vim 复制粘贴,并且可以正常工作。
看来 PyCharm 保存了一个问题。
推荐阅读
- python - 在heroku中部署后“找不到模块:tkinter”
- android - 在 Bundle 中实现 Material Design 的问题
- iphone - iOS 电子邮件客户端测试
- office365 - Office365 Exchange 报告 API 错误 - 未找到段“MailDetailDlpPolicy”的资源
- kendo-ui - 当 Kendo ui 编辑器 id 目标时,kendo ui 上下文菜单不起作用
- python - 如何使用 python 处理我的数据以获取流程参数?
- java - 如何在 Camera2 Api 自定义视频录制应用程序中添加徽标/水印
- c# - 为 Excel VSTO 插件构建程序集 COM-Visible 中断
- java - 使用 Geotools Dijkstra 最短路径查找器计算路径长度(距离以公里为单位)
- java - Java List 如何同时拥有超类型和子类型?