gpt4 book ai didi

nginx - 在 docker (uwsgi) 上运行的 Nginx 上的 404

转载 作者:行者123 更新时间:2023-12-02 21:28:17 30 4
gpt4 key购买 nike

我一直在与这个作斗争,无法理解它。

我有一个可以运行的简单 Dockerfile,我使用 监督 作为 CMD 启动 nginx 和 uwsgi。它完成了工作,但我得到了 404。所以我要做的是改为 使用 /bin/bash 启动 docker并手动启动并调试 ,例如:

sudo docker run -t -i -p 8095:80  myimage /bin/bash

所以这是我的 nginx 配置(在站点可用,然后是站点启用的链接):
server {
listen 80;
server_name 0.0.0.0;

location / {
include uwsgi_params;
uwsgi_pass unix:/WikiRockWord2Vec/WikiRockWord2Vec.sock;
}
}

这是我的 uwsgi ini:
[uwsgi]
module = wsgi

master = true
processes = 5


socket = /WikiRockWord2Vec/WikiRockWord2Vec.sock
chmod-socket = 777
vacuum = true
uid = www-data

die-on-term = true

确实创建了套接字,并且我已将权限更改为 777 以确保所有 nginx 都可以访问。但似乎 nginx 无论如何都不会发送到上游。

浏览到 localhost:8095 会找到 nginx 主页,但任何其他路由都返回 404。 Nginx 错误日志为空 .

我已经确认 nginx 读取 .conf (通过添加拼写错误并在 nginx 日志中查看错误)但更改套接字位置没有影响,就好像它甚至不关心该部分一样。 在我的 ubuntu 盒子上类似的情况下,当 sock 文件不存在或存在权限问题时,我会在日志中得到 502 和一些提示。 但是在这里我什么也没得到,好像 UWSGI 没有针对 NGINX 进行配置。

我迷路了,你能帮忙吗?我是否缺少 nginx 中的模块配置(类似于 apache)?我是 nginx 新手。

最佳答案

404 可能是因为您的 nginx conf文件的 server阻止不正确,我认为是因为您的 server_name部分。

所以这是我的修改版本,你可以检查它是否工作

server {
listen 80 default_server;

location / {
uwsgi_pass unix:///WikiRockWord2Vec/WikiRockWord2Vec.sock;
include uwsgi_params;
}
}

关于nginx - 在 docker (uwsgi) 上运行的 Nginx 上的 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31471439/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com