gpt4 book ai didi

python - nginx: [警告] 0.0.0.0:80 上的冲突服务器名称 "domain",已忽略

转载 作者:行者123 更新时间:2023-12-01 06:44:42 27 4
gpt4 key购买 nike

我已经购买了域名,并将我的 django 应用程序部署到 DigitalOcean,但此错误不允许我使用应用程序。我怎样才能忽略这个错误?这是我的代码:

设置.py:

ALLOWED_HOSTS = ['blablabla.com', '64.225.12.157']

nginx:

server {
listen 80;
server_name blablabla.com;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/sammy/myproject;
}

location / {
include proxy_params;
proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
}
}

默认 nginx:

        root /var/www/blablabla.com;

index index.html index.htm index.nginx-debian.html;

server_name blablabla.com;

location / {
try_files $uri $uri/ =404;
}

最佳答案

您有两个问题(第二个问题主要是建议):

<小时/>

第一:

您已在两个位置定义了 server_name 指令:一处位于默认 http block 中,另一处位于 server block 中。删除默认 http block 中的引用,并仅保留 server block 中的引用。此外,除非您知道自己在做什么,否则也请从 http block 中删除 location/ 指令,位置通常放在 server block 来为该服务器进行 URL 映射。将其放在 http block 中进行全局映射,这会在调试时跟踪映射时引起头痛。

<小时/>

第二:

Django 使用 WSGI 协议(protocol),因此(在生产中)需要 WSGI 服务器来发送请求并从 Django 获取响应。据推测,您正在使用对 UNIX 域套接字的引用给出的一个:

/home/sammy/myproject/myproject.sock

因此,如果您的 WSGI 服务器(例如 uWSGIgunicorn)在该套接字上监听传入请求,并通过该套接字发送响应,您需要告诉 Nginx使用 WSGI 协议(protocol)从套接字发送和检索数据,并传递相关的 WSGI 参数。一个例子是:

upstream foobar {
server unix:///home/sammy/myproject/myproject.sock;
}

server {
server_name blablabla.com;
...
...
location / {
uwsgi_pass foobar;
include /etc/nginx/uwsgi_params;
}
}

您当前通过 proxy_pass 进行反向代理的配置将起作用,但使用 WSGI 可以让您更接近底层使用的底层协议(protocol),因此建议使用。

关于python - nginx: [警告] 0.0.0.0:80 上的冲突服务器名称 "domain",已忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284542/

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