WEB环境部署

一、环境搭建

1、测试环境部署

2、预发布系统

3、线上服务器部署架构图

# WEB环境部署与上线流程
1.环境搭建
    1.部署规范
        服务器部署规范
        软件部署规范
        测试
        上线
    2.服务器环境搭建
        Nginx
            Nginx管理
                Nginx介绍
                Nginx安装,启动
                Nginx相关目录及配置文件详解
                Nginx默认网站
                    访问控制
                    日志管理
                    防盗链
                Nginx虚拟主机
                反向代理
                URL重写
                Nginx下载限速        
            Nginx优化
                长连接
                压缩
                客户端缓存
                并发数
            Nginx负载均衡
                集群介绍
                使用Nginx分发器构建一个web集群
                Nginx分发算法
                    轮询
                    基于权重的轮询
                    基于开发语言
                    基于浏览器
                    基于源IP
                构建高可用Nginx集群
                RS故障检测机制    
            Nginx缓存
        Nginx+uwsgi+python+mysql+django
            python
            mysql的安装管理
            python业务集成部署,发布一个python开发的web
    3.业务环境快速升级部署
        saltstack
            saltstack介绍
            saltstack自动化部署
            业务环境更新案例
2.代码管理
    1.持续集成
        持续集成介绍
        认识devops
    2.持续交付-源码管理
        Git
            Git介绍
            Git安装与配置
            Git仓库初始化
            Git基础命令
            Git分支
            Git标签
        Gitlab
            Gitlab介绍
            Gitlab安装
            Gitlab服务于系统设置
            Gitlab仓库管理
            Gitlab备份与恢复
        GitHub
            GitHub的使用
    3.持续部署
        Jenkins介绍
        Jenkins安装与初始化
        Jenkins目录介绍
        Jenkins创建freestyle-job
        Jenkins获取Gitlab源码
        Jenkins部署HTML网站
        Jenkins部署脚本编写
        Jenkins配置Gitlab自动触发构建
        Jenkins配置Jenkins返回构建状态到Gitlab
        maven配置
        Jenkins创建maven job
        Jenkins Pipeline 介绍
        Jenkins Pipeline 示例


# 服务器逻辑
1.服务器选择
    物理服务器
        CPU
            核心数
            主频
        Memory
            容量
            频率
        Storage
            本地存储
                机械磁盘
                    容量
                    转速
                    缓存大小
                固态磁盘
                磁盘阵列    
            外挂存储
                移动硬盘
                OSS
        NIC
            网卡数量
            网卡速率            
    云服务器(同上)
2.操作系统
    系统选型
        厂商选择
            Redhad
        系统版本
            CENTOS
            RHEL
    系统安装
        初始化系统安装包
        初始化系统启动服务
    优化方案
        内核优化
            TCP/IP优化
            IO优化
            内存,CPU优化
            文件系统优化
        安全部署
            私有服务访问控制
                端口
                源地址
            防火墙
                拒绝所有允许个别
                允许所有拒绝个别
            selinux
                文件服务器                            
3.部署逻辑
    业务环境
        内侧服务器
            内侧
        预发布服务器
            公测
        线上业务服务器
            上线
    特点:业务环境一模一样
    功能:测试代码
    服务器部署架构图        



# 业务环境部署逻辑
1.服务器部署架构
    分发层部署
    前端系统
    后端系统
    数据库服务器部署
    缓存系统
    代码分发系统
    分布式存储系统
2.软件部署文档
    软件
        版本号
        获取方式
    软件安装步骤
    软件相关目录说明
    配置文件配置说明
    软件运行
    环境测试    
3.日常维护文档    


#测试
1.开发上传代码到源码系统
    svn
    git
2.上线-测试服务器(内侧)
    测试准备
        功能需求文档
        原型图
        效果图
        测试设备
    测试目的
        代码测试
        构建程序
        代码审核
        功能验证
    测试周期
    测试计划
    测试用例
    测试
        APP
        机器人
        人机
    记录提交测试BUG
    验证关闭bug
    测试报告
3.预发布测试(公测)
    预发布测试
        用户体验测试
        功能验证
        压力测试
    测试周期
    测试用例
    打包验证完毕后的最终代码
    测试报告                        


#上线
产品需求确认
产品研发确认
产品测试确认
上线流程文档
跟踪统计用户反馈情况



#上线流程
CI
1)开发代码

2)审核代码
    主干
    分支

3)Git本地合并分支 

4)本机环境测试代码

5)开发上线代码到GitHub

CD
一测   开发+测试


二测   测试+加内测用户     运维负责部署
	  测试提交测试报告  
	  主管确认签字   


上线   运维负责    
	  各部门主管在上线申请签字 
      运维负责上线




WEB环境部署与上线流程

二、Nginx

1、Nginx介绍与安装

##Nginx介绍与安装
Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发⾼高性能的 Web和 反向代理 服务器器,也是一个 IMAP/POP3/SMTP 代理理服务器器。
• 轻量量级的web服务器器
• 延伸版本tengine(淘宝)、openresrt(章亦春)等
• http://nginx.org 官网
• http://www.nginx.cn/doc/index.html 中文文档

01Nginx 安装
    官网源码包
    • wget http://nginx.org/download/nginx-1.15.5.tar.gz -P /usr/src
    源码安装三部曲
        配置--编译--安装
        • 配置 configure
        --prefix=path 安装路路径
        --help 配置参数
        • 编译
        make
        • 安装
        make install
02Nginx相关目录介绍
    • nginx path prefix: "/usr/local/nginx"
    • nginx binary file: "/usr/local/nginx/sbin/nginx"
    • nginx modules path: "/usr/local/nginx/modules"
    • nginx configuration prefix: "/usr/local/nginx/conf"
    • nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
    • nginx pid file: "/usr/local/nginx/logs/nginx.pid"
    • nginx error log file: "/usr/local/nginx/logs/error.log"
    • nginx http access log file: "/usr/local/nginx/logs/access.log"
03Nginx启动
    • /usr/local/nginx/sbin/nginx
04Nginx验证测试
    验证方法
    netstat –ntpl
    lsof -i :80

## 查看命令的安装包
yum search killall
yum search elinks
yum search curl
yum search lynx

rpm -qf `which htpasswd`

elinks http://192.168.10.42  --dump
Nginx介绍与安装

2、Nginx配置文件

#启动子进程程序默认用户
#user  nobody;
#一个主进程和多个工作进程。工作进程是单进程的,且不需要特殊授权即可运行;这里定义的是工作进程数量
worker_processes  1;

#全局错误日志的位置及日志格式
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    #每个工作进程最大的并发数
    worker_connections  1024;
}


#http服务器设置
http {
    #设定mime类型,类型由mime.type文件定义
    include       mime.types;
    
    #
    default_type  application/octet-stream;

    #日志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
    #$remote_user:用来记录客户端用户名称;
    #$time_local: 用来记录访问时间与时区;
    #$request: 用来记录请求的url与http协议;
    #$status: 用来记录请求状态;成功是200,
    #$body_bytes_sent :记录发送给客户端文件主体内容大小;
    #$http_referer:用来记录从那个页面链接访问过来的;
    #$http_user_agent:记录客户浏览器的相关信息;

    #全局访问日志路径 
    #access_log  logs/access.log  main;
    #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
    sendfile        on;
    
    #此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
    #tcp_nopush     on;

    #长连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #开启压缩
    #gzip  on;

    #配置虚拟主机
    server {
        #虚拟主机使用的端口
        listen       80;
        #虚拟主机域名
        server_name  localhost;

        #虚拟主机支持的字符集
        #charset koi8-r;

        #虚拟主机的访问日志路径
        #access_log  logs/host.access.log  main;

        #定义web根路径
        location / {
            #根目录路径
            root   html;
            #索引页
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #

        #根据错误码 返回对应的页面
        error_page   500 502 503 504  /50x.html;

        #定义页面路径
        location = /50x.html {
            root   html;
        }

        #定义反向代理服务器 数据服务器是lamp模型
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}


        #定义PHP为本机服务的模型  
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #拒绝apache DR目录及子目录下的.htaccess文件访问
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    #https的配置方案
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}
/usr/local/nginx/conf/nginx.conf

3、Nginx默认网站

4、Nginx虚拟主机

5、Nginx反向代理

6、Nginx限速

7、NginxURL重写

8、Nginx优化

9、Nginx集群

10、Nginx集群算法

11、Nginx构建高可用集群

#!/bin/bash
nginx_kp_check () {
nginxpid=`ps -C nginx --no-header |wc -l`
if [ $nginxpid -eq 0 ];then
   /usr/local/nginx/sbin/nginx
      sleep 1
        nginxpid=`ps -C nginx --no-header |wc -l`
          if [ $nginxpid -eq 0 ];then
        systemctl stop keepalived
          fi
fi
}


nginx_kp_check
nginx_pid.sh
! Configuration File for keepalived

global_defs {
   router_id NGINX_DEVEL
}

vrrp_script check_nginx {
    script "/etc/keepalived/nginx_pid.sh"
    interval 2
    fall 1
}


vrrp_instance nginx {
    state MASTER
    interface ens33
    mcast_src_ip 192.168.10.40
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

  track_script {
        check_nginx
    }
   
   virtual_ipaddress {
        192.168.10.213/24
    }
}
keepalived.conf.rpmsave
! Configuration File for keepalived

global_defs {
   router_id NGINX_DEVEL
}

vrrp_script check_nginx {
    script "/etc/keepalived/nginx_pid.sh"
    interval 2
    fall 1
}


vrrp_instance nginx {
    state MASTER
    interface ens33
    mcast_src_ip 192.168.10.40
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

  track_script {
        check_nginx
    }
   
   virtual_ipaddress {
        192.168.10.213/24
    }
}
keepalived.conf

12、Nginx部署python语言的web环境

三、saltstack

猜你喜欢

转载自www.cnblogs.com/bubu99/p/12920058.html
今日推荐