使用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. border-radius的参数

    border-radius的参数: 据w3c上的官方解释,是这样子的: border-radius: 1-4 length|% / 1-4 length|%;1-4指的是radius的四个值,leng ...

  2. [POI2008]激光发射器SZK

    Description 多边形相邻边垂直,边长为整数,边平行坐标轴.要在多边形的点上放一些激光发射器和接收器.满足下列要求: 1发射器和接收器不能放置在同一点: 2发射器发出激光可以沿壁反射,最终到达 ...

  3. 解题报告:hdu 1073 Online Judge

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1073 Problem Description Ignatius is building an Onli ...

  4. SpringCloud开发学习总结(四)—— 客户端负载均衡Ribbon

    通过上一章<SpringCloud开发学习总结(三)—— 服务治理Eureka>,我们已经搭建起微服务架构中的核心组件——服务注册中心(包括单点模式和高可用模式).同时还注册了一个服务,命 ...

  5. for循环的两种写法哪个快

    结果如下: 其实工作中,也没有这么多数据需要遍历,基本上用foreach

  6. Android基础夯实--重温动画(五)之属性动画 ObjectAnimator详解

    只有一种真正的英雄主义 一.摘要 ObjectAnimator是ValueAnimator的子类,它和ValueAnimator一样,同样具有计算属性值的功能,但对比ValueAnimator,它会更 ...

  7. jsp 页面获取当前路径

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  8. yii项目开发配置

    Clone项目 git clone https://gitee.com/s***/dianshang.git 安装yii php ini 选择 [0] Development 安装扩展 copy co ...

  9. 【C++】异常简述(二):C++的异常处理机制

    上文简述了在C语言中异常的处理机制,本文主要讲解C++中的异常处理. 一.异常的语法格式 在C++中,异常的抛出和处理主要使用了以下三个关键字:try. throw . catch.其格式如下: 当我 ...

  10. 在JAVA中封装JSONUtils工具类及使用 (转)

    import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...