Ubuntu中配置uwsgi和nginx
1.uwsgi安装测试
# 进入到虚拟环境 workon dj_pro ? # 安装uwsgi pip install uwsgi
2.uwsgi配置
在项目根目录中创建deploy目录,新建uwsgi_conf.ini文件
[uwsgi] # 使用nginx连接时使用,Django程序所在服务器地址 # 选择内网IP和端口 ip a 查看 使用第二个的ip socket=10.0.2.15:8000 ? # 项目根目录 pwd查看 chdir=/home/dj31 ? #项目中wsgi.py文件的相对目录 wsgi-file=dj31/wsgi.py ? # 进程数 processes=2 ? # 线程数 threads=2 ? # uwsgi服务器的角色 master=True ? # 存放进程编号的文件 pidfile=uwsgi.pid ? # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。以前的runserver是依赖终端的 daemonize=logs/uwsgi.log ? # 指定虚拟环境所在目录,不能填相对目录 virtualenv=/home/Conner/.virtualenvs/myblog_pro ?
3.启动uwsgi
切换到deploy目录中,创建logs/uwsgi.log文件,用于存放日志文件
# 启动uwsgi uwsgi --ini uwsgi_conf.ini & ? # 停止uwsgi uwsgi --stop uwsgi.pid
4.在Ubuntu 18.04中安装配置Nginx
# 安装nginx sudo apt update -y sudo apt install nginx -y
5.nginx配置
创建/etc/nginx/conf.d/nginx_dj_pro.conf文件
upstream MyBlog { # 此处为uwsgi运行的ip地址和端口号 ,ip a查看第二个 server 10.0.2.15:8000; } server { # 监听端口 listen 80; # 服务器域名或者ip地址 server_name 39.108.191.165 .shishi.com; # 编码 charset utf-8; # 文件最大上传大小 client_max_body_size 75M; # 媒体文件 location /media { alias /home/Conner/MyBlog/media; } # 静态文件 location /static { alias /home/Conner/MyBlog/static; } # 主目录 location / { uwsgi_pass MyBlog; include /etc/nginx/uwsgi_params; } }
# 移动nginx_dj_pro.conf sudo cp nginx_dj_pro.conf /etc/nginx/conf.d/ # 修改 /etc/nginx/nginx.conf sudo vim nginx.conf 改 user root
# 测试nginx配置文件是否正确:sudo nginx -t -c /etc/nginx/nginx.conf # 打印如下内容,则没问题nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful # 重新加载配置sudo nginx -s reload -c /etc/nginx/nginx.conf # 停止nginx sudo systemctl stop nginx # 启动nginx sudo systemctl start nginx