原文转载于: https://www.liujiangblog.com/course/django/181
1. 安装ngnix
Ubuntu默认源里面的Nginx版本比较旧,需要先添加一个Nginx的源,再通过apt-get安装Nginx。
sudo add-apt-repository ppa:nginx/stable
apt-get update
apt-get install nginx
输入 service --status-all,如果能看到带+号的nginx,表明一切ok!
2.安装uwsgi
uWSGI的官网地址:https://uwsgi-docs.readthedocs.io/en/latest/index.html
确保下载最新版的,否则会出现各种错误, 下载完成之后
# 解压文件
tar -zxvf uwsgi
# 进入解压目录
sudo python3 setup.py install
运行一下uwsgi,
3.配置uwsgi文件
在项目的根目录下,也就是有manage.py的目录下,新建一个uwsgi.ini
文件,编辑文件内容为:
[uwsgi]
chdir = /home/nvidia/ros_web
#项目根目录
module = ros_web.wsgi:application
#指定wsgi模块
socket = 127.0.0.1:8000
#对本机8000端口提供服务
master = true
#主进程
#vhost = true //多站模式
#no-site = true //多站模式时不设置入口模块和文件
#workers = 2 //子进程数
#reload-mercy = 10
#vacuum = true //退出、重启时清理文件
#max-requests = 1000
#limit-as = 512
#buffer-size = 30000
#pidfile = /var/run/uwsgi9090.pid //pid文件,用于下脚本启动、停止该进程
daemonize = /home/nvidia/ros_web/run.lo
disable-logging = true
- chdir是你的项目根目录。我这里的项目名叫for_test;
- moudule是你的入口wsgi模块,将for_test替换成你的项目名称;
- socket是通信端口设置,和我一样就行;
- master=True表示以主进程模式运行;
- demonize是你的日志文件,会自动建立
- disable-logging = true 表示不记录正常信息,只记录错误信息。否则你的日志可能很快就爆满了。
4.配置nginx
备份/etc/nginx/sites-available
文件夹内的default文件,然后编辑它:
关键是这一部分:
server_name 192.168.1.121; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. # try_files $uri $uri/ =404; include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } location /static { alias /home/feixue/python/www/for_test/static; }
请将server_name
改成你的实际名称,location /static
的alias改成你的实际情况,其它部分保持不变,尤其是include一定要一样。
修改完毕,保存退出,然后重启nginx服务:
sudo service nginx restart
5.启动服务
进入项目的根目录,也就是有uwsgi.ini文件的地方,运行:
sudo uwsgi uwsgi.ini
系统提示:
[uWSGI] getting INI configuration from uwsgi.ini
6. 编辑settings.py文件:
DEBUG = False ALLOWED_HOSTS = ['*']
7.关闭服务
sudo killall -9 uwsgi
这会删除先前的uwsgi进程