前言:
多说两句,很多人开始都有个疑问,为啥有了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有权限起来,并且要备案才能看见页面
========================================
配置完以上的配置,就可开心的以访问网站了