Nginx+Django后端配置心得
今天花了很长时间配置后端服务器,发表一下自己的心得
整体流程
整体大致的流程如下
http请求发送至nginx后,通过socket的方式转发给uwsgi,uwsgi再将打开Django中的wsgi.py,生成一个application,从而调用Django的代码
也就是说,http发送给80端口,再通过转发,发送至在8080(这个是我们自己配置的,不固定)端口上的uwsgi
各项配置
nginx
在nginx.conf中,修改location中的属性,注意两点:
include uwsgi_params
代表使用uwsgi参数
uwsgi_pass 127.0.0.1:8080
代表转发给8080端口的uwsgi
这之后,便可以启动nginx了,如果已经启动,调用nginx -s reload
就行
uwsgi(这一步较为关键)
uwsgi有很多繁琐的参数,为了简化我们的操作,我们配置一个.ini文件进行初始化,即只要执行uwsgi --ini xxx.ini
后,即可看作携带了很多参数的执行
新建/etc/uwsgi.ini
文件,在文件中加入如下配置
注意最重要的[uwsgi]声明内容,socket代表当前uwsgi的接口,chdir代表目标Django文件夹的路径,wsgi-file代表wsgi.py在目标文件夹下的位置
在配置完成后,执行uwsgi --ini /etc/uwsgi.ini
指令,即可打开uwsgi
可以使用ps -ef | grep uwsgi
查看有哪些进程,也可以使用kill -9 `ps -ef | grep uwsgi | awk '{print $2}'`
杀死所有相关进程
在配置好nginx和uwsgi后,即可成功从80端口访问!