在Linux下访问Django框架搭建的程序,同windows下的直接启动manage服务不同,这里是通过uwsgi 来启动服务。前提是服务器中已经存在了uwsgi,安装本文没有提到。
django_wsgi.py
文件内容:
import os import django.core.handlers.wsgi os.environ['DJANGO_SETTINGS_MODULE'] = 'beachbox.settings' application = django.core.handlers.wsgi.WSGIHandler()
其中setting文件改为自己的。
uwsgi.xml
文件内容:
<uwsgi> <socket>127.0.0.1:6666</socket> <listen>20</listen> <master>true</master> <pidfile>/usr/local/nginx/uwsgi.pid</pidfile> <processes>2</processes> <module>django_wsgi</module> <pythonpath>/data1/vul_regression/project/beachbox</pythonpath> <profiler>true</profiler> <memory-report>true</memory-report> <enable-threads>true</enable-threads> <logdate>true</logdate> <limit-as>6048</limit-as> </uwsgi>
其中pythonpath改为自己的路径。
2、Django的urls文件中,加上一种patterns,这是为了支持静态文件JS和CSS等,如下:
urlpatterns = patterns('', url(r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_PATH, 'show_indexes':True}), )
此处要注意的是,我这个patterns是放在最上面的,那么相应的原来的第一个patterns的等于号(=)应该改为加等(+=),以免覆盖上面内容而不起作用。
3、nginx配置文件,例如路径 /usr/local/nginx/conf/nginx.conf
文件中加入Web服务:
server {
listen 11111;
server_name 1.2.3.0;
location / {
root /data1/project/beachbox;
uwsgi_pass 127.0.0.1:6666;
include uwsgi_params;
access_log off;}
}
其中server_name的IP或者域名自己修改,listen端口自己设置,便是之后要访问的端口。
最后,启动服务命令:
nohup uwsgi -x /data1/project/beachbox/uwsgi.xml &
访问:http://1.2.3.0:11111/ 即可成功访问网页啦~