Nginx+uWSGI+Django+Python在Linux上的部署
搞了一整天,终于以发现自己访问网络的端口是错误的结束了。
首先要安装Nginx,uWSGI,Django,Python,这些都可以再网上查到。
安装好后可以用 whereis 命令查看是否安装好了各种软件。
例如 whereis nginx
nginx wget http://nginx.org/download/nginx-0.8.54.tar.gz
Django wget http://media.djangoproject.com/releases/1.2/Django-1.2.5.tar.gz
1.创建django项目
需要用到命令
import os,sys import django.core.handlers.wsgi os.environ[‘DJANGO_SETTINGS_MODULE‘]=‘auth_check.settings‘ application=django.core.handlers.wsgi.WSGIHandler()
其中auth_check 为你创建的项目名称
3.创建uwsgi.xml文件
在django.py文件的目录创建uwsgi.xml
<uwsgi> <socket>0.0.0.0:9090</socket> <listen>20</listen> <master>true</master> <pidfile>/usr/local/nginx/uwsgi.pid</pidfile> <processes>8</processes> <module>django</module> <pythonpath>/root/work/djangodemo/auth_check</pythonpath> <profiler>true</profiler> <enable-threads>true</enable-threads> <logdate>true</logdate> </uwsgi>
其中9090为端口号,这个需要与后面配置的nginx.conf中的端口一样,module表示上面创建的django.py文件,pythonpath为django.py文件的绝对路径(可以有多个pythonpath)
4.启动uwsgi
输入命令启动uwsgi
uwsgi -x uwsgi.xml
5.配置nginx
进入nginx目录 可以通过
which nginx
命令查找,然后再conf目录下找到 nginx.conf文件,然后更改。
修改前的文件:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
修改后:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
}
其中9090要与上面的xml文件一样,80为访问的端口
6.启动 nginx
/usr/local/nginx/sbin/nginx
每次修改conf文件后都需要重启nginx
/usr/local/nginx/sbin/nginx -s reload
7.访问网络
curl "http://192.168.153.134"
ip地址可以使ifconfig里面的你的本机的地址,可以是0.0.0.0,可以是127.0.0.1
如果返回的html是django的页面就表明你成功了
访问网络时的端口是nginx.conf里面的listen参数,这里是80,不是uwsgi的端口(9090),切记切记。
8.后记
1)如果访问网络,返回的html有“The page you are looking for is temporarily unavailable.”
表明你的uswgi服务没启动,或nginx里的端口与uswgi的端口不一致
2)uwsgi有多个参数,-x 表示以xml为配置文件启动uwsgi,-d /var/log/uwsgi.log 为后台运行uwsgi并把日志写到/var/log/uwsgi.log里面
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。