根据uWSGI官网教程来配置项目:
Setting up Django and your web server with uWSGI and nginx
系统环境: centos7.2 64bit(aliyun)
假设公网IP为39.108.38.23
1.所有的配置完成后,用服务器curl有响应,而公司电脑没有响应??
curl http://39.108.38.23:8000/ #有响应
浏览器访问:http://39.108.38.23:8000/ #提示无法访问网站
答:找了很久才发现,是公司设置防火墙导致了。在此记录一下,这个花了很多时间,浪费了很多时间。当时的重点一直以为是配置出了问题,查了大量的资料,根据网上的资料重新来配置测试,对每一个配置项进行了不同的配置,依然没有效果,钻牛角尖的状态,很烦躁。直至脱身出来,脑光一现,想到了公司电脑网络的问题。所以,以后若出现不断更改配置(而且对配置都已经很了解了)依然没有效果,请停下来,换换大脑,换一个思路
2.访问:http://39.108.38.23:8000/media/1.jpg提示权限问题
vim /etc/nginx/nginx.conf
查看发现第一行为user nginx
而我们的项目文件夹的权限是root,因此有两种方式来解决问题
- 第一种:修改user nginx 为 user root
- 第二种:目录文件改为nginx拥有 chown nginx:nginx data -R (记住一定从根目录开始更改用户所有者)
3.Using Unix sockets instead of ports
server unix:///path/to/your/mysite/mysite.sock; # for a file socket
# server 127.0.0.1:8001; # for a web port socket (we'll use this first)
官网说配置为mysite.sock文件,那么这个文件怎么来呢?
其实操作方式很简单:就是使用vim创建一个空的mysite.sock文件即可,然后在mysite_nginx.conf和mysite_uwsgi.ini更改相应配置即可
原理是这样的:
也就是说,我们创建一个空的mysite.sock文件即可,uWSGI会自动创建socket接口与Nginx进行通信