前言:

多说两句,很多人开始都有个疑问,为啥有了uwsgi这个服务器还要套个nginx,多次一举?

并不是的,举个例子,你自己出去溜达很容易被被人揍,被侵害,被攻击被黑,这个就是uwsgi,有点脆弱个,功能不多,只是还可以能用,但是们加了一次nginx,就相当于穿了一身牛逼的装备,出去溜达就不怕被打了。专业的属于就是uwsgi套了一层nginx,就可以:

更安全、更快的处理静态资源、缓存、更好的配合cdn、多台机器负载均衡、Nginx来处理slow client、uWSGI支持的是wsgi协议,Nginx支持的是http协议,它们之间是有区别的。

一句话总结,nginx增加了web应用的功能,各个方面的。

一、uwsgi配置

在你的项目根目录下新建一个配置文件,这个配置文件是uwsgi和python程序的连接口,我的如下:

127.0.0.1:8866

/home/work/app/**/

django_wsgi

/home/work/app/**/**/

8

/home/work/log/**/uwsgi.log

true

其中**是项目名称,其他的都看一下就明白了,module的django_wsgi是项目下的django_wsgi.py文件,这个是项目的配置启动文件,我的如下

#!/usr/bin/env python

# coding: utf-8

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "**.settings_online")

#from django.core.handlers.wsgi import WSGIHandler

#application = WSGIHandler()

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

注意注释掉的部分是因为新的django已经不兼容的了,要用没注释的代码才能兼容新的djaongo

配置完这两个,就可以启动uwsgi了

启动命令uwsgi -x /home/work/app/**/ngnix_soket.xml

出现[uWSGI] parsing config file /home/work/app/thrones/ngnix_soket.xml  就是成功了

这个时候外网是访问不到的,只有本机才可以访问用过curl 127.0.0.1:8866 查看是否成功

二、nginx配置

进入nginx配置文件夹打开配置文件

cd ~/local/nginx/conf/ & vi nginx.conf

需要修改的位置 第一行一定写 user  root; 当然你要用别的启动请给相应的权限

下面是我server的配置:

server {

listen      8081;

server_name  **.com www.**.com;

access_log /home/work/log/**/ngnix_app_access8081.log;

error_log /home/work/log/**/ngnix_app_error8081.log;

location / {

root /home/work/app/**/;

uwsgi_pass    127.0.0.1:8866;

include        uwsgi_params;

}

error_page  500 502 503 504  /50x.html;

location = /50x.html {

root  html;

}

location /favicon.ico {

root html;

}

location /static/ {

alias  /home/work/app/**/static/;

}

location /media {

alias  /home/work/app/**/media/;

}

location /download/ {

alias  /home/work/**/download/;

}

}

里面的需要注意的就是域名 和静态文件配置

然后还有一大堆图片加载优化的配置我就不贴了,我的网站图片加载很慢。

配置完以上 切换的root用户 su - root 然后启动下nginx就行了

注意,80端口只有root有权限起来,并且要备案才能看见页面

========================================

配置完以上的配置,就可开心的以访问网站了