使用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. Java-超市购物小票案例-详细介绍

    1.1  超市购物购物小票需求分析 用户循环进行三个操作: 1.输入购买数量,代表为所购买货物的数量赋值,从而计算每项商品金额 2.打印小票,将已有数据打印 3.退出系统(因为该程序为循环操作,无法终 ...

  2. HashMap和List遍历方法总结及如何遍历删除元素

    https://blog.csdn.net/demohui/article/details/77748809

  3. Unity笔记(4)自学第四、五天

    主要是移动脚本和2个技能的脚本编写. 首先是移动的脚本: using System.Collections; using System.Collections.Generic; using Unity ...

  4. reveal.js让程序员做ppt也享受快乐

    前言 程序员除了会写的一手漂亮的代码,也要求做出风格优雅的PPT,诸如向领导汇报工作.向小组成员反馈项目进展自己的工作等等.就本人而言,做ppt还要去找模板,还需要设计风格,内心是焦灼的.于是乎,我搜 ...

  5. Pycharm+Django+Python+MySQL开发 后台管理数据库

    Django框架十分简单易用,适合搭建个人博客网站.网上有很多教程,大多是关于命令行操作Django,这里分享一些用最新工具进行Django开发过程,主要是PyCharm太强大,不用有点可惜. 第一次 ...

  6. OpenGl之旅-—如何使用code blocks创建一个opengl项目

    开始学习opengl啦,练习用的编辑器是code blocks. 首先当然是要清楚如何使用code blocks创建一个opengl项目了. 首先必须先引用opengl的库glut,网上百度下载一个完 ...

  7. idea 部署struts所遇到的问题\

    1.org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter 加载失败 解决方法:下载struts2 的源码包,然后将D:\ ...

  8. 迅为双核imx6DL核心板_ARM定制专家_Cortex SATA 千兆网 4G GPS

    核心板参数 尺寸:51mm*61mm CPU:Freescale Cortex-A9 双核精简版 i.MX6DL,主频 1.2 GHz 内存:1GB DDR3 存储:8GB EMMC 存储 EEPRO ...

  9. 自动交互脚本之expect使用记录

    之前一直没怎么用这个命令,意外用了一下,还不错,那这个是干嘛的呢 我们或多或少会远程登录其他服务器,需要执行某项任务,通常需要手动接入,输入密码啊,等等 那我们如何有效的自动执行呢,expect可以解 ...

  10. Lodash数组方法中文总结

    LodashAPI总结 Lodash是一个特别特别好用的工具,感觉有了Lodash就没有解决不了的问题了~~~~ 使用初开始 官网 https://www.lodashjs.com/docs/4.17 ...