Django——配置服务器上线

使用UWSGI和NGINX配置项目上线

首先你得有一个拿得出手的项目

其次,购买了域名,也备案成功了


 

将settings.py中的DEBUG设置为False

配置Uwsgi

在项目(哪里都可以)中创建一个test.py文件

这里推荐创建一个文件夹方便管理(deploy)

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3

 

运行uwsgi

uwsgi --http :8000 --wsgi-file test.py
# 测试
curl 127.0.0.1:8000

 

或者直接在浏览器上访问服务器IP(IP:8000)

如果出现了Hello World,则说明uwsgi没有问题。

现在来设置uwsgi运行项目的配置

[uwsgi]
# 使用nginx连接时使用,Django程序所在服务器地址
# 选择内网IP和端口(ip a查看)
socket=172.19.87.124:8000

# 项目根目录(pwd)
chdir=/home/wjh/project/MyBlog

#项目中wsgi.py文件的相对目录(pwd)
wsgi-file=MyBlog/wsgi.py

# 进程数
processes=1

# 线程数
threads=1

# uwsgi服务器的角色
master=True

# 存放进程编号的文件
pidfile=uwsgi.pid

# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。以前的runserver是依赖终端的(pwd)
# 再deploy下新建文件夹logs,在logs中新建空文件uwsgi.log
daemonize=/home/wjh/project/MyBlog/deploy/logs/uwsgi.log # 指定虚拟环境所在目录,不能填相对目录(ls -a) virtualenv=/home/wjh/.virtualenvs/Myblogs

 

启动uwsgi

# 启动uwsgi
uwsgi --ini uwsgi_conf.ini &

# 停止uwsgi
uwsgi --stop uwsgi.pid

 

 

 


 

 

配置Nginx

需要安装docker,没有可以看我前面的教程

服务器切换到/etc/nginx/conf.d目录,新建一个nginx的配置文件,名字随意,.conf后缀(nginx_MyBlogs.conf)

upstream myblogs {
    # 此处为uwsgi运行的ip地址和端口号(内网IP)
    server 172.19.87.124:8000;
}

server {
    # 监听端口
    listen      80;

    # 服务器域名或者ip地址(外网IP 域名)
    server_name 101.132.181.155 .pywjh.xin;

    # 编码
    charset     utf-8;

    # 文件最大上传大小
    client_max_body_size 75M;

    # 媒体文件(指定docker的media)
    location /media  {
        alias /media;
    }

    # 静态文件(指定docker的static)
    location /static {
        alias /static;
    }

    # 主目录
    location / {
        uwsgi_pass  myblogs; #(名字与前面对应)
        include    /etc/nginx/uwsgi_params;
    }
}

 

修改nginx.conf文件(@之前的名字)

# 修改sudo vim /etc/nginx/nginx.conf
# 第一行开头修改用户,将www-data改为你当前的用户

user username;

 

然后运行docker容器

# 冒号之前的是服务器的路径,之后的是docker容器中的路径
docker run --name nginx-server -p 80:80 -v /home/wjh/project/MyBlog/media:/media -v /home/wjh/project/MyBlog/static:/static -v /home/wjh/project/MyBlog/deploy/nginx_conf:/etc/nginx/conf.d -d nginx

 

网站就可以访问了

 

posted @ 2019-05-23 10:45  pywjh  阅读(615)  评论(0编辑  收藏  举报
回到顶部