uwsig的安装测试
安装uwsgi
sudo python -m pip install uwsgi
注意:
1)在系统环境安装,非虚拟环境
2)使用对应python版本安装
3)要先安装python开发包
测试 uwsgi 是否正常
在home/ubuntu目录下新建 test.py 文件,内容如下:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
print("hello world")
return [b"Hello World"]
终端运行:
sudo uwsgi --http :8000 --wsgi-file /home/ubuntu/test.py
浏览器输入http://IP:8001可以打印出来说明安装成功
注意:需要开启8001端口才可正常访问
uwsgi的http协议访问django写的网站
可执行如下命令可以测试自己的项目
sudo uwsgi --http :8001 --chdir 项目路径 --虚拟运行环境路径 --module mysite.wsgi:application
浏览器输入http://IP:8001可以正常访问
虚拟运行环境的搭建
1. python安装虚拟环境(virtualenv):
sudo python -m pip install virtualenv
2. 创建虚拟运行环境mysite_env
进入home目录: cd /home
创建虚拟运行环境: virtualenv mysite_env
3.虚拟运行环境常用命令
启动虚拟环境: source mysite_env/bin/activate
退出虚拟环境: deactivate
4.本地环境安装mysqlclient的依赖
sudo apt-get install python3-dev libmysqlclient-dev
5. 进入虚拟环境安装Python包
# 切换root账号
sudo su root
# 启动虚拟运行环境
source mysit_env
# 通过pip安装博客项目的Python依赖包
pip install django-ckeditor==5.4.0
pip install Django==2.0
pip install Pillow==5.0.0
pip install pytz==2017.3
pip install mysqlclient
nginx的安装与配置
安装nginx
若有安装过apache,要先把apache服务关闭(apache2ctl stop)
# 更新软件仓库
sudo apt-get update
# 安装nginx
sudo apt-get install nginx
移除default
sudo rm -rf /etc/nginx/sites-enabled/default
进入sites-available创建新的配置
cd /etc/nginx/sites-available/
sudo vim mysite.conf
配置下面:
server {
listen 80;
server_name mysite;
charset utf-8; # 编码格式
client_max_body_size 75M; # 最大文件大小限制
location /favicon.ico {
alias /home/mysite/favicon.ico; # favicon.ico路径
}
location /static {
alias /home/mysite/static; # 静态文件路径
}
location /media {
alias /home/mysite/media; # 图片文件路径
}
location / {
uwsgi_pass 127.0.0.1:8001; # 本地监听端口
include /etc/nginx/uwsgi_params;
}
}
设置软链接到sites-enabled
sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
配置uwsgi,创建ini文件
[uwsgi]
chdir = /home/mysite # django项目路径
home = /home/mysite_env # 虚拟环境路径
module = mysite.wsgi:application
master = True
processes = 4 # 进程数
harakiri = 60 # 超时时长
max-requests = 5000 # 最大请求数
socket = 127.0.0.1:8001
uid = 1000
gid = 2000
pidfile = /home/mysite_uwsgi/master.pid
daemonize = /home/mysite_uwsgi/mysite.log
vacuum = True
启动uwsgi
启动:sudo uwsgi --ini /home/mysite_uwsgi/mysite.ini
查看uwsgi进程数:ps -aux | grep uwsgi
测试nginx
命令:sudo nginx -t
返回ok无异常,其他情况检查自己的配置文件
重启nginx
sudo service nginx restart
收集静态文件
有些静态文件没有收集起来,导致有些页面样式不对
找到settings.py,在STATIC_URL上面加上STATIC_ROOT = os.path.join(BASE_DIR, ‘static_collected’),保存
启动虚拟环境:
启动: source /home/mysite_env/bin/activate
收集静态文件:
python /home/mysite/manage.py collectstatic
修改上传文件夹权限
sudo chmod -R 777 media
其他常用命令
正常关闭uwsgi进程:sudo uwsgi --stop /home/mysite_uwsgi/master.pid
强制关闭全部uwsgi进程:sudo ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9
重新加载uwsgi:sudo uwsgi --reload /home/mysite_uwsgi/master.pid