前提条件:首先项目使用一下命令启动成功后,输入公网ip后可以启动成功
python manage.py runserver 0.0.0.0:80
一、阿里云配置安全组 添加8000端口
二、安装配置uwsgi
1、确定django项目可以正常运行了,ctrl+c停止项目,下面我们来安装uwsgi:
在安装uwsgi非常简单,只需要pip安装即可,
pip install uwsgi
按照官网介绍,写已经Python脚本进行测试,test.py(在任意路径都可以,不过测完要记得删掉)
def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"]
然后输入命令进行测试
uwsgi --http :8000 --wsgi-file test.py
在浏览器打开公网ip:8000。出现Hello World则证明uwsgi安装成功
如若不行:运行以下命令:
iptables -L
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
2、配置wsgi.py文件
打开项目中wsgi.py文件,添加两行代码
3、在django项目根目录下创建uwsgi.ini文件
uwsgi.ini 文件配置
[uwsgi]
chdir= /home/tempfile/RSMDSys
module= RSMDSys.wsgi
socket= 127.0.0.1:8000
master= true
processes=4
vacuum=true
daemonize= /home/tempfile/RSMDSys/uwsgi.log
pidfile=/home/tempfile/RSMDSys/uwsgi.pid
这里配置日志文件和pid文件,方便之后的重启
关于uwsgi的重启问题:
每次项目有代码更新的话,都需要重启uwsgi,如果没有配置pid文件的话,重启需要使用:
#查看uwsgi进程号
ps aux | grep uwsgi
#关闭进程号为0的进程
kill -9 主进程号
来停止uwsgi,然后才能重启,注意这里的主进程是pid为1的进程,而配置了pid文件的,只需要进行如下方法来重启即可
#重载(一般修改参数,或者修改py文件经常用到)
uwsgi --reload uwsgi.pid
#重启(一般系统环境变化会用到)
uwsgi --stop uwsgi.pid
4、最后在项目根目录下运行uwsgi命令,载入配置文件
uwsgi --ini uwsgi.ini
三 安装配置ngnix
sudo apt-get install nginx
修改nginx配置
cd /etc/nginx/sites-enabled #Ubuntu中nginx配置文件所在路径
vim default
server {listen 80 default_server; #监听端口,将来访问的端口listen [::]:80 default_server;root /var/www/html;# Add index.php to the list if you are using PHPindex index.html index.htm index.nginx-debian.html;server_name _;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:8000; #uwsgi中配置的路径}location /static {alias /home/tempfile/RSMDSys/static; #静态资源路径}location /media {alias /home/tempfile/RSMDSys/media; #网页图标路径}
}
uwsgi启动后,再启动nginx
基础命令
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #关闭
/etc/init.d/nginx restart #重启
启动之后,访问外网IP:80,查看是否可以通过nginx访问django.如果能访问表示配置成功。
参考自https://segmentfault.com/a/1190000013529115
https://blog.csdn.net/qq_35318838/article/details/79531566