一、安装python版本,如python3.6
一般上传web项目代码到/srv/http目录下,放在root目录下会有安全危险
1.sudo add-apt-repository ppa:jonathonf/python-3.6 2.sudo apt-get update 3.sudo apt-get upgrade -f 4.apt-get install python3.6
检查python3.6是否安装成功
安装pip3.6
sudo python3.6 -m pip install --upgrade pip
检查pip3.6是否安装成功
二、安装uwsgi
sudo apt-get install python3.6-dev pip3.6 install uwsgi
验证uwsgi安装是否成功
def application(env, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return ["Hello World"]
uwsgi --http :8001 --wsgi-file testuwsgi.py
uwsgi启动 重启 停止
查看uwsgi.pid
ps ax | grep uwsgi
kill -9 pid
三、uWSGI运行Django
1.通过命令的方式运行django项目
uwsgi --http :8000 --chdir /root/gues/ --wsgi-file gues/wsgi.py --master --processes 4 --stats 127.0.0.1:9191
运行时会提示报错,要设置允许远程访问
ALLOWED_HOSTS = ['公网ip','内网ip','*'] 内网ip可以不用设置,最好不要设置*,设置公网ip或者内网ip即可。
通过浏览器访问验证django服务是否启动成功
四、安装nginx
sudo apt update
sudo apt install nginx
nginx默认配置文件路径
/etc/nginx/sites-available/default
验证nginx是否安装成功
五、Nginx+uWSGI+Django进行整合
1.在django项目根目录下新建一个uwsgi.ini文件
uwsgi.ini
[uwsgi] #请求方式与端口号 socket = :8888 #Django项目路径 chdir = /root/gues #wsgi文件,项目名称.wsgi module = gues.wsgi #运行主进程存在 master = true #开启进程数 processes = 10 #当服务器退出时自动清理环境 vacuum = true
uWSGI运行Django方式二,uwsgi通过命令读取uwsgi.ini配置文件来启动django web项目
http://180.76.60.102:8888不能通过公网的方式访问,本地http://127.0.0.1:8888可以访问
2.配置nginx
vim /etc/nginx/sites-available/default
server { listen 80 default_server; listen [::]:80 default_server; server_name 127.0.0.1 192.168.15.255; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; #server_name _; location / { include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:8888; } }
检查nginx配置是否成功
nginx -t
记得配置完nginx后一定要重启nginx服务
sudo /etc/init.d/nginx restart
六、静态资源配置,静态资源最好不要配置在root目录下存在肉鸡危险,网站文件一般放在 /srv/http目录下
收集静态资源到指定目录
# settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'static') #指定样式收集目录,部署django项目的时候需要用到STATIC_ROOT
执行命令收集静态资源
python3.6 manage.py collectstatic
nginx配置静态资源路由
vim /etc/nginx/sites-available/default
location /static{ alias /root/gues/static; }
由于项目在root根目录下,所以访问静态资源会提示:403 Forbidden
解决方案,给静态资源文件夹添加读写权限
chmod -R 777 /root/gues/static
修改nginx头部的 user www, www 改成root,方法可以但不建议这么做,服务器存在肉鸡危险。
vim /etc/nginx/nginx.conf
django配置完成。