下载大发彩_票平台

下载大发彩_票平台
地址一:【hubawl.com】狐霸源码论坛
地址二:【bbscherry.com】

项目开发完毕后,需要将代码放到服务器上,这样用户才能访问。接下来我们一步一步来进行一波部署操作

打包上传代码

项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前服务器IP或*,如:

ALLOWED_HOSTS = ["",]
这个配置就是允许别人通过哪个ip访问你,
表示所有ip

上线时还要将配置中的DEBUG改为False

不同系统如何传代码

windows:
yum install lrzsz
压缩zip包,拖进来。
mac:
scp /home/xx/s8day145.zip [email protected]:/data/
在真正的线上环境应该从git上拖代码

安装Python3

复制代码
a. 下载Python:https://www.python.org/ftp/python/3.5.4/
b. 解压 tar -xvf Python-3.5.4.tgz
c. cd Python-3.5.4
d. 先装依赖:

  • yum install openssl-devel
  • yum install sqlite-devel
    e. 编译安装
  • ./configure
  • make
  • make install

    /usr/local/bin python3
    f. 安装django
     pip3 install django==1.11.7
    复制代码
    第一版本上线:简单粗暴

进入python程序目录

python3 manage.py runserver 0.0.0.0:8000
uwsgi

Django框架运行依赖wsgi(本质提供socket服务端),众多模块实现了wsgi规范,而django框架中默认使用wsigiref模块来实现,他由于性能比较低,所以用于本地开发和测试,而线上部署时需要使用uwsgi来代替

在服务器上安装uwsgi

pip3 install uwsgi
单文件使用uwsgi

在服务器上编写一个Python文件app.py:

def application(env, start_response):
start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
return [b"Hello World"]
在服务器上执行命令启动Web服务器:

uwsgi --http :9001 --wsgi-file app.py

uwsgi --http :9002 --wsgi-file app.py --master --processes 4 # 启动4个进程
PS: flask需要再加 --callable app

uwsgi --http :9002 --wsgi-file app.py --callable app
django程序

方式一

uwsgi --http :9003 --chdir /data/s8day145/ --wsgi-file s8day145/wsgi.py # chdir进入后面的项目目录 然后wsgi-file找到项目中的wsgi.py文件
方式二

可以看到上面的方法参数很多,我们可以将参数写到一个文件中

复制代码
s8day145_uwsgi.ini
[uwsgi]
http = 0.0.0.0:9005
chdir = /data/s8day145/
wsgi-file = s8day145/wsgi.py
processes = 4 # 进程数
static-map = /static=/data/s8day145/allstatic # 静态文件的目录
复制代码
启动时

uwsgi --ini s8day145_uwsgi.ini
此时访问时,会出现找不到静态文件的错误。

想要uwsgi处理静态文件,需要先将django的静态文件收集到制定目录,然后再设置对应关系。

收集django静态文件

在django的配置文件中添加:STATIC_ROOT = os.path.join(BASE_DIR,"allstatic")
执行 python3 manage.py collectstatic 命令,至此django项目所有相关静态文件都会收集到制定目录。
设置uwsgi静态文件对应关系

uwsgi --http :9005 --chdir /data/oldboy/ --wsgi-file oldboy/wsgi.py --master --processes 4 --static-map /static=/data/oldboy/allstatic
第三版本上线:uwsgi + nginx

nginx作用:

  • 处理静态文件
  • 反向代理
  • 负载均衡(LVS、haproxy)
    uwsig作用:
  • 处理动态请求

nginx配置文件

复制代码
user root;
worker_processes 4;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;

access_log  /var/log/nginx/access.log  main;

sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
keepalive_timeout   65;

include             /etc/nginx/mime.types;
default_type        application/octet-stream;

upstream django {
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
}
server {
    listen      80;

    charset     utf-8;

    # max upload size
    client_max_body_size 75M;

    location /static {
        alias  /data/s8day145/allstatic;
    }

    location / {
        uwsgi_pass  django;
        include     uwsgi_params;
    }
}

}
复制代码
uwsgi配置:/data/s8day145/

复制代码
s8day145_uwsgi_8001.ini
[uwsgi]
socket = 127.0.0.1:8001
chdir = /data/s8day145/
wsgi-file = s8day145/wsgi.py
processes = 1

s8day145_uwsgi_8002.ini
[uwsgi]
socket = 127.0.0.1:8002
chdir = /data/s8day145/
wsgi-file = s8day145/wsgi.py
processes = 1
复制代码
启动

复制代码
nginx:
/etc/init.d/nginx start
/bin/systemctl restart nginx.service
/bin/systemctl start nginx.service
/bin/systemctl stop nginx.service

uwsgi:
uwsgi --ini s8day145_uwsgi_8001.ini &
uwsgi --ini s8day145_uwsgi_8002.ini &
复制代码
如果进程挂了,supervisor帮助你自动将服务重新启动

supervisor是一个对进程管理的软件,可以帮助我们启动uwsgi并维护(uwsgi进程关闭时,自动将其启动起来)

安装

yum install supervisor
配置/etc/supervisord.conf

复制代码
[program:s8day145]
command=/usr/local/bin/uwsgi --ini /data/s8day145/s8day145_uwsgi_8001.ini ;命令
priority=999 ; 优先级(越小越优先)
autostart=true ; supervisord启动时,该程序也启动
autorestart=true ; 异常退出时,自动启动
startsecs=10 ; 启动后持续10s后未发生异常,才表示启动成功
startretries=3 ; 异常后,自动重启次数
exitcodes=0,2 ; exit异常抛出的是0、2时才认为是异常
stopsignal=QUIT ; 杀进程的信号
stopwaitsecs=10 ; 向进程发出stopsignal后等待OS向supervisord返回SIGCHILD 的时间。若超时则supervisord将
使用SIGKILL杀进程
user=root ; 设置启动该程序的用户
log_stdout=true ; 如果为True,则记录程序日志
log_stderr=false ; 如果为True,则记录程序错误日志
logfile=/var/log/cat.log ; 程序日志路径
logfile_maxbytes=1MB ; 日志文件最大大小
logfile_backups=10 ; 日志文件最大数量
复制代码
启动

systemctl start supervisord.service
公司正式上线流程

复制代码
公司中的部署步骤及负责人:

  • 开发提交代码
  • 测试人员开始测试
  • 运维人员进行上线
    使用软件:jenkins+自己写脚本,运维人员点点点。
    • 从git上啦代码到一个服务器,在该服务器上对代码进行编译(c/vue/java)
    • 通过以下工具 将代码同步到每台服务器上
      • saltstack
      • ansible
    • 执行命令启动程序

原文地址:http://blog.51cto.com/13871370/2144003

时间: 2024-10-29 00:25:43

下载大发彩_票平台的相关文章

超详细java中 大发彩_票平台搭建 的ClassLoader详解

ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见.理解ClassLoader的加载机制,也有利于我们编写出更高效的代码.ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了.但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载.想想也是的,一次性加载那么多jar包那么多class,那内存不崩溃.本文的目的也是学习ClassLoader这种加载机制. 大发彩

分享一篇耗子源码论坛大发彩_票平台搭建教程

大发彩_票平台搭建 Q1446595067在之前的工作,一直是以Android为主,前端为辅.经过了几个项目,也基本了解了前后端数据交互到底是怎么回事儿.但是在做项目的过程中经常有这个问题,项目初期需求定稿开始开发工作期间,服务端的同事需要搭建数据库,搭框架之类的工作,而同样的移动端或前端也开始撘架构或写页面,在写页面的时候不免要用到数据.此时,服务端的同事很可能因为工作进度还没有完成接口的开发.这个时候,如果不会服务端开发的话,我们一般只能在本地模拟一些假数据来使用,或者等着后台提供接口-.但

Python的time库和文本进度条 大发彩_票平台搭建

大发彩_票平台搭建 地址一:[hubawl.com]狐霸源码论坛地址二:[bbscherry.com] 是Python中处理时间的标准库1.time库包括三类函数 时间获取:time() ctime() gmtime()时间格式化:strftime() strptime()程序计时:sleep(), perf_counter()2.时间获取 3.时间格式化 4.程序计时 5.进度条实例 #textProBarV1.pyimport timescale = 50print("执行开始".

C++-类和动态内存分配 大发彩_票平台开发

大发彩_票平台开发 地址一:[hubawl.com]狐霸源码论坛地址二:[bbscherry.com] 类和动态内存分配 动态内存和类 C++在分配内存时是让程序在运行时决定内存分配,而不是在编译时决定. 这样,可根据程序的需要,而不是根据一系列严格的存储类型规则来使用内存.C++使用new和delete运算符来动态控制内存. 1.1. 复习示例和静态类成员 这个程序使用了一个新的存储类型:静态类成员. //strngbad.h#include<iostream>#ifndef STRNGBA

Effective Java-创建 大发彩_票平台出租 和销毁对象

一.考虑用静态方法代替构造器 ? 类可以通过静态工厂方法来提供它的客户端,而不是通过构造器. 优势: ? 1.它们有名称,可以根据名称将创建对象的行为表达的更清楚. ? 2.可以不必在每次调用它们的时候都返回一个新对象.这使得不可变类可以使用预先构建好的实例,或者将构建好的实例缓存起来,进行重复利用. ? 3.它们可以返回原返回类型的任何子类型的对象.API可以返回对象,同时又不会使对象的类变成公有的.以这种方式隐藏实现细节. ? 4.在创建参数化实例的时候,它们使代码变得简洁. 缺点: ? 1

贝尔级数在构造杜 大发彩_票源码下载 教筛卷积中的应用

学了一发贝尔级数 (划掉)人赢(划掉)zzs好强啊,rqy好巨啊 群里神仙讨论-- 贝尔级数只针对积性函数,如无特殊说明下文函数均为积性函数. 定义f模p的贝尔级数为: fp(x)=∑0≤if(pi)xifp(x)=∑0≤if(pi)xi 特别的,对于完全积性函数来说: fp(x)=11?f(p)xfp(x)=11?f(p)x 例如,ep(x)=1,1p(x)=11?x,idp(x)=11?px,μp(x)=1?x,(μ2)p(x)=1+x,(id?μ)p(x)=1+px,?p(x)=1?x1?

python中的全大发彩局票网站开发变量与局部变量的区别

全局变量与大发彩局票网站开发haozbbs.comQ1446595067局部变量的本质区别在于作用域: 全局变量是在整个py文件中声明的,全局范围内都能访问: 局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就会崩掉. 如果在函数内部定义某个与全局变量一样名称的局部变量,就可能导致意外的效果,不建议这样使用,这样会使程序不健全.例1: def fun(x):y=2print("乘法的运行结果:",x*y) num1=1print("初始n

nity进行文字图像h5牛_牛平台搭建下载识别——Face++

h5牛_牛平台搭建下载[征途源码论坛zhengtuwl.com]联系方式:QQ:2747044651POST的请求,请求参数和返回值这两个是关键,请求参数就是我们访问他给的网址需要传递过去的参数,返回值就是识别后返回给我们的值,这里返回识别值是Unicode编码的,这里用因为返回的是json串,所以用引入litjson,解析一下就可以输出识别出的字了. 如图是请求与返回参数: 原文地址:http://blog.51cto.com/13978877/2177160

大发彩piao完整版源码搭建,大发系统平台架设-网站搭建教程

大发彩piao搭建介绍: 基础框架:spring,hibernate,websocket,ionic(前端) 服务器系统:windows2008 64位 技术架构: 开发语言:php 数 据 库:mysql 基础框架:spring,hibernate,websocket,ionic(前端) 文件大小:压缩包266MB左右 解压后666MB左右 推荐服务器:2核 4G内容 **B带宽 服务器:1核 1G 1MB 也可以就是慢点 关于充值: 1.手动充值,用户填写的是ID而不是注册账号,在用户列表中