附带说明:该站点使用Python3 manage.py 0.0.0.0:8800
但是,nginx似乎在套接字中面临权限问题,并在浏览器中给出了502坏网关错误。
nginx错误日志显示以下错误:
2020/07/08 21:05:40[crit]3943#3943:*3连接()到Unix:///home/Ubuntu/deploymenttst/mysite/mysite.sock失败(13:权限被拒绝),连接到上游时,客户端:192.168.12.12,服务器:192.168.12.12,请求:“Get/HTTP/1.1”,上游:“UWSGI://Unix:///home/Ubuntu/deploymenttst/mysite/mysite.sock:”,主机:“192.168.12.400”
配置如下:
>
在项目的settings.py文件中,配置被设置为(除了默认的wsgi之外):
DEBUG = False
ALLOWED_HOSTS = [ "192.168.12.12" ]
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
/etc/nginx/sites-available/mysite_nginx.conf
中的mysite_nginx.conf文件具有以下配置项:
# MySite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
server unix:///home/ubuntu/deploymenttst/MySite/MySite.sock; # for a file socket
#server 127.0.0.1:8008;
}
# configuration of the server
server {
# the port your site will be served on
listen 8400;
# the domain name it will serve for
server_name 192.168.12.12; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# # Django media
location /media {
alias /home/ubuntu/deploymenttst/MySite/media; # your Django project's media files - amend as required
}
location /static {
#alias /home/ubuntu/deploymenttst/MySite/main/static; # your Django project's static files - amend as required
#alias /home/ubuntu/deploymenttst/MySite/register/static; # your Django project's static files - amend as required
alias /home/ubuntu/deploymenttst/MySite/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /home/ubuntu/deploymenttst/MySite/uwsgi_params; # the uwsgi_params file you installed
}
}
它已经sym链接到/etc/nginx/sites-enabled/mysite_nginx.conf。
uwsgi_params文件是在包含以下条目的项目目录中创建的:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
mysite_uwsgi.ini文件中的内容如下:
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/ubuntu/deploymenttst/MySite
# Django's wsgi file
module = MySite.wsgi
# the virtualenv (full path)
#home = /home/ubuntu/deploymenttst/MySite/
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 20
# the socket (use the full path to be safe
socket = /home/ubuntu/deploymenttst/MySite/MySite.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
uid = www-data
gid = www-data
# clear environment on exit
vacuum = true
使用Python3 manage.py collectstatic
在项目目录中的静态目录中收集了静态文件
为什么我仍然得到坏的网关502错误,其中上游django应用程序无法联系由于权限问题?
通过将项目放置到/tmp目录解决了这个问题。
从www.data用户运行的nginx无法访问内部目录MySite,因此无法访问socket或放置在其中的文件,尽管它被分配给了用户www.data。
现在,我的另一个问题是关于nginx权限问题的原因,尽管向www.data提供了目录的uid和gid,但问题可能是什么?
我一直在关注http://uwsgi-docs.readthedocs.io/en/latest/tutorials/django_and_nginx.html
我遵循本教程,但我有一个问题,我得到了502 Nginx错误。 教程链接 我检查了错误日志,上面写着 uwsgi.log ImportError:没有名为khcards的模块。wsgi 我的uwsgi文件是这样的 我的nginx。形态 服务器{监听80;server_name域www.domain.co.uk;根 /var/www/example.com/src/khcards;access_lo
在尝试部署我使用django开发服务器开发的博客时收到400错误后,我开始了一个新的测试项目(使用start project,不做其他任何事情——只是在这里和那里进行一点配置)-尽可能少,以保持尽可能简单。 当我执行“manage.py runserver”时,它会显示一个页面,说我看到了这个,因为我的设置中有“DEBUG=True”。 到现在为止,一直都还不错。没有错误。 但是如果我使用uWSG
我的Django url模式: 自动取款机。我使用以下命令运行Django: uwsgi--socket:8000--wsgi-file wsgi.py 我可以访问Django,但是当我试图访问 www.testing.test/api/admin 时,我得到了一个404(从Django调试)。 但这让我的Django告诉我一个404 当我请求
我的应用程序有以下堆栈: Nginx(1.4.6) UWSGI(1.9.17.1-Debian(64bit)) 烧瓶 Python 3.4 NGINX重启后的问题在一段时间内(几分钟)都能正常工作。在此期间之后,我收到一个“504网关超时”错误。 NGINX日志: *13从上游读取响应标头时上游超时(110:连接超时),客户端:86.123.39.44,服务器:app.fc.com,请求:“get
我正试图在Docker上用Nginx、uWSGI和Postgres安装一个Django应用程序。我找到了一本关于为Django和Postgres设置Compose的优秀指南:https://docs.docker.com/v1.5/compose/django/ 但是,现在我需要添加Nginx和uWSGI。我试过使用这个回购协议的文件(https://github.com/baxeico/djan