我是新建的vagrant虚拟机,新的utuntu 12.04系统,除了update
和upgrade
外没动过,然后刚刚安装完 uwsgi 和 nginx。我在
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
/etc/uwsgi/apps-available/
/etc/uwsgi/apps-enabled/
这三个目录下面添加了一些文件,nginx的sites-available和sites-enabled下面文件是link到一起的,uwsgi的apps-available下面则放了一个xml文件,和apps-enabled里面的文件link到一起。
下面是我执行uwsgi
命令的结果:
$ uwsgi
*** Starting uWSGI 1.0.3-debian (64bit) on [Thu Jan 29 12:43:23 2015] ***
compiled with version: 4.6.3 on 17 July 2012 02:26:54
current working directory: /home/vagrant/mypy-proj.com
detected binary path: /usr/bin/uwsgi-core
*** WARNING: you are running uWSGI without its master process manager ***
your memory page size is 4096 bytes
The -s/--socket option is missing and stdin is not a socket.
我想知道:
1. 这些输出是什么意思?
2. 上面那三个文件夹是安装完nginx
和uwsgi
之后就有的吗?还是我用vim
新建其中文件的时候,同时创建出来的?
3. 怎么让我在这三个文件夹里放的配置文件生效?貌似它们所在的路径是有权限限制的,那么我让它们生效的时候岂不是必须要用 sudo 了?
(但是我用 sudo 执行uwsgi --xml [xml配置文件名]
的话,随后从客户端访问这个 vagrant 虚拟服务器,会出现 502 错误,查看日志会发现是因为没有权限而无法访问 socket 文件。)
最好通过python pip安装uwsgi.
如果安装版本错误,先卸载:
python 版本最好是python 2.7.*
pip的版本应该是最新版本。
查看pip 版本:
接下来安装uwsgi。
输出配置:
安装成功后看成uwsgi版本:
这样就确保uwsgi的版本是最新版本了。
举例:
django进行配置:
如果能够正常访问,那么可以测试uwsgi.
这里要通过django的wsgi启动,wsgi.py 在hello目录下面。
显示出itworks!
配置django static目录,
在django settings,
然后运行
接下来进行配置nginx。
启动nginx:
首先要确保nginx配置路径下面有
uwsgi_params
地址:https://github.com/nginx/nginx/blob/master/conf/uwsgi_params
在工程目录下新建一个mysite.conf.
nginx配置文件:
}
注意,由于django settings 里面会配置
STATIC_URL
这样在nginx里面只能设置成,
TIPS:
如果静态文件目录用户权限是root
则需要更改nginx.conf,添加
通过软连接:
重启nginx
接下来配置uwsgi
新建一个hello_uwsgi.ini文件。
启动uwsgi
正常输出:
如何设置uwsgi后台运行:
需要在
mysite_uwsgi.ini
配置文件中添加这样就会吧日志打印到uwsgi.log中。
通过查
nginx
的access_log 和 error_log 进行调试错误。