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