使用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

网站就可以访问了

Django——配置服务器上线的更多相关文章

  1. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  2. 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明

    第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...

  3. 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置

    第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...

  4. 第三百九十一节,Django+Xadmin打造上线标准的在线教育平台—404,403,500页面配置

    第三百九十一节,Django+Xadmin打造上线标准的在线教育平台—404,403,500页面配置 路由映射在全局也就是根目录里的urls.py里配置404路由映射 注意:不是写在urlpatter ...

  5. 第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示

    第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示 首先了解一下static静态文件与上传资源的区别,static静态文件里面一般防止的我们网站样式的文件, ...

  6. 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册

    第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...

  7. 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置

    第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置 1.xadmin主题设置 要使用xadmin主题,需要在一个app下的adminx.py后台注册文件里,写一 ...

  8. 《玩转Django2.0》读书笔记-Django配置信息

    <玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...

  9. 第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置

    第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置 1.Linux安装配置 注意事项: 虚拟机网卡桥接模式 不要拨VPN 如果,网络怎么都 ...

随机推荐

  1. Android上的线程安全

    Thread-safe methods In some situations, the methods you implement might be called from more than one ...

  2. 018 [工具软件]截图贴图注释 Snipaste

    Snipaste 是一个截图贴图工具,绿色免费.官方主页:https://zh.snipaste.com/. 三大功能: 1.截图,可以自动识别窗口的各元素,可以精准到像素调整截图区域大小. 2.贴图 ...

  3. C# Equals的重写

    using System; using System.Collections.Generic; using System.Text; namespace Equal {     using Syste ...

  4. WinForm 对话框,流

    private void button1_Click(object sender, EventArgs e) { //显示颜色选择器 colorDialog1.ShowDialog(); //把取到的 ...

  5. (六)Mybatis总结之延迟加载

    应用场景: i.假如一个用户他有N个订单(N>=1000),那么如果一次性加载的话,一个用户对象的订单集合OrderList里面就会有1000多个Order的对象.计算:一个订单对象里面数据有多 ...

  6. 5.1点击4个按钮显示相应的div

    事件:onclick 属性:display,className 用到for语句,index标记,this当前事件 先清空后附加 <!DOCTYPE html><html>< ...

  7. javascript中函数的四种调用模式详解

    介绍函数四种调用模式前,我们先来了解一下函数和方法的概念,其实函数和方法本质是一样,就是称呼不一样而已.函数:如果一个函数与任何对象关系,就称该函数为函数.方法:如果一个函数作为一个对象属性存在,我们 ...

  8. Eclipse打包多渠道包(库工程版)

    请先移步多渠道打包http://www.cnblogs.com/bhm666/p/6438776.html 自从上次使用了Gradle打渠道包后,遇到了各种各样的问题,不过也是小问题,仍然在几个项目上 ...

  9. rar在linux下安装更新

    1.下载:根据主机系统下载合适的版本,当前64为centos系统演示下载: wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz 2.解压安 ...

  10. c# winform如何屏蔽键盘上下左右键

    重写事件: protected override bool ProcessDialogKey(Keys keyData) { if (keyData == Keys.Up || keyData == ...