昨天刚刚部署完python flask写得一个网站。写完网站后,本地测试好了,就开始上线部署了,正好分享下过程。WebApp部署条件:零、前提:(1)掌握ubuntu基本知识:bash基本脚本的编写,vim的使用,curl的使用,ps的使用,kill的使用(2)掌握HTTP协议基本知识:request-response模式、HTTP方法、HTTP状态一、非必要条件:(1)域名:可选万网、西部数据(2)域名解析服务(DNS):CloudXNS(个人服务免费、企业服务收费)二、必要条件:(1)云服务提供商:阿里云、腾讯云、百度云、新浪云、DigitalOcean(2)HTTP服务器:Apache、Nginx、uWSGI、Gunicorn(3)进程管理:supervisor三、具体部署案例:(一)部署具体选型:万网域名 + CloudXNS + 腾讯云:Ubuntu 14.04 LTS + Nignx + Gunicorn(二)部署过程:(1)购买域名:3 - n 元,域名服务商有购买引导,此不赘述(2)域名解析:CloudXNS写有教程,写得很好,此不赘述(3)服务器购买:云服务器服务商有购买引导,此不赘述(4)HTTP服务器配置:Nginx作为反向代理,实现负载均衡Nginx安装:sudo apt install nginxNginx版本:nginx/1.10.0 (Ubuntu)Nginx配置路径:Ubuntu 14.04 LTS,/etc/nginx/site-available/defaultNginx配置备份:mv default default.bakNginx配置内容:将内容修改为 server { listen 80; server_name 139.75.42.45(或者example.com); # 这是HOST机器的外部域名,用ip地址也行 # 分发静态资源:html、css、js、img等 location ~^\/static/\.*$ { root /home/ubuntu/www/app/static; } # 转发http请求,并且添加上部分头信息 location / { proxy_pass http://127.0.0.1:8000; # 这里是指向 gunicorn host 的服务地址 proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } Nginx重启:service nginx restart(5)HTTP服务器配置:Gunicorn(gevent模式)(编写语言python)gevent安装:pip install geventGunicorn安装:pip install gunicornGunicorn配置: #!/bin/python # coding=utf-8 # config.py import gevent.monkey import multiprocessing gevent.monkey.patch_all() # 监听接口绑定 bind = '127.0.0.1:8000' preload_app = True # 日志配置 loglevel = 'error' logfile = 'app/log/gunicorn/debug.log' accesslog = 'app/log/gunicorn/access.log' access_log_format = '%(h)s %(t)s %(U)s %(q)s' errorlog = 'app/log/gunicorn/error.log' # 进程名 proc_name = 'vservice' # 进程id储存文件:专门储存gunicorn进程id,方便kill pidfile = 'app/log/gunicorn/gunicorn.pid' # 进程开启数量 workers = multiprocessing.cpu_count() * 2 + 1 # 线程开启数量 threads = multiprocessing.cpu_count() * 2 # 职程运行模式 worker_class = 'gevent' Gunicorn启动Flask实例:gunicorn -c config.py manege:app(manege是flask入口文件名,app是flask实例名)(6)进程管理工具配置:supervisor(编程语言python)supervisor安装:pip install supervisorsupervisor配置: # 文件命名:supervisor.conf [program:vservice] command=/usr/local/bin/gunicorn -c /home/ubuntu/www/app/config.py manage:app startsecs=100 startretries=10 process_name=%(program_name)s numprocs=1 directory=/home/ubuntu/www/app/ autostart=true autorestart=unexpected stdout_logfile=/home/ubuntu/www/app/log/supervisor/stdout.log stderr_logfile=/home/ubuntu/www/app/log/supervisor/stderr.log [supervisord] # supervisor启动:supervisord -c supervisor.conf
首先你需要搞一个项目;搞一个服务器,使用 ng 或者别的来启动你的服务;如果需要,再绑定一个域名。 至于服务器,推荐 Do (即 DigitalOcean ); nginx,部署起来要便捷许多;如果静态Web服务,也可以考虑 Github-page 等等;当然 ng 部署静态 Web 服务也非常容易,即便新手也很容易使用。
昨天刚刚部署完python flask写得一个网站。写完网站后,本地测试好了,就开始上线部署了,正好分享下过程。
WebApp部署条件:
零、前提:
(1)掌握ubuntu基本知识:bash基本脚本的编写,vim的使用,curl的使用,ps的使用,kill的使用
(2)掌握HTTP协议基本知识:request-response模式、HTTP方法、HTTP状态
一、非必要条件:
(1)域名:可选万网、西部数据
(2)域名解析服务(DNS):CloudXNS(个人服务免费、企业服务收费)
二、必要条件:
(1)云服务提供商:阿里云、腾讯云、百度云、新浪云、DigitalOcean
(2)HTTP服务器:Apache、Nginx、uWSGI、Gunicorn
(3)进程管理:supervisor
三、具体部署案例:
(一)部署具体选型:万网域名 + CloudXNS + 腾讯云:Ubuntu 14.04 LTS + Nignx + Gunicorn
(二)部署过程:
(1)购买域名:3 - n 元,域名服务商有购买引导,此不赘述
(2)域名解析:CloudXNS写有教程,写得很好,此不赘述
(3)服务器购买:云服务器服务商有购买引导,此不赘述
(4)HTTP服务器配置:Nginx作为反向代理,实现负载均衡
Nginx安装:sudo apt install nginx
Nginx版本:nginx/1.10.0 (Ubuntu)
Nginx配置路径:Ubuntu 14.04 LTS,/etc/nginx/site-available/default
Nginx配置备份:mv default default.bak
Nginx配置内容:将内容修改为
Nginx重启:service nginx restart
(5)HTTP服务器配置:Gunicorn(gevent模式)(编写语言python)
gevent安装:pip install gevent
Gunicorn安装:pip install gunicorn
Gunicorn配置:
Gunicorn启动Flask实例:gunicorn -c config.py manege:app(manege是flask入口文件名,app是flask实例名)
(6)进程管理工具配置:supervisor(编程语言python)
supervisor安装:pip install supervisor
supervisor配置:
supervisor启动:supervisord -c supervisor.conf