美文网首页
nginx1-网站服务部署

nginx1-网站服务部署

作者: mrwangjian | 来源:发表于2020-02-11 21:26 被阅读0次

    老男孩教育61期--week14--网站web服务

    1. 课程介绍部分:
      1)网站web服务概念介绍说明 nginx apache
      2)网站web服务软件部署过程 3种 web01 web02 web03
      3)网站web服务软件配置应用
      4)网站web服务企业配置实践
      5)网站web服务网页跳转功能
      6)网站web服务如何安全访问 HTTPS
    1. 知识重点回顾:
      1)批量管理服务扩展功能
      剧本变量设置功能
      剧本注册设置功能
      剧本判断设置功能 setup
      剧本循环设置功能
      剧本忽略错误功能
      剧本标签设置功能
      剧本忽略采集功能
      剧本汇总执行功能
      2)批量管理服务角色配置 规范化配置
      3)网站服务协议概念
      用户访问网站的原理过程
      网站访问HTTP报文信息 请求报文(方法 协议(tcp长/短链接)) 响应报文(状态码)
      网站访问资源信息 静态资源 动态资源 伪静态资源
      网站度量方法 IP PV (awk-数组功能 ELK) UV (获取用户访问网站cookie)
    1. 企业常用网站web服务有哪些
      https://w3techs.com/technologies/overview/web_server/all 记录全球web服务使用比例

      静态网站web服务软件
      apache
      nginx

      动态网站web服务软件
      php
      tomcat (java) 优化
      python

    2. nginx网站web软件概述
      特点:处理高并发能力比较强,占用系统资源比较少
      功能:网站web服务 网站负载均衡(LVS haproxy) 网站缓存功能
      用户访问网站(获取图片) --- 负载均衡 --- web01 --- nfs存储服务器 (读)
      用户访问网站(获取图片)
      用户访问网站(获取图片)
      用户访问网站(获取图片) --- 负载均衡 --- web01(缓存图片) --- nfs存储服务器 (读)
      用户访问网站(获取图片)
      用户访问网站(获取图片)
      用户访问网站(获取图片) --- 负载均衡 ( --- web01 --- nfs存储服务器 (读)
      用户访问网站(获取图片)
      用户访问网站(获取图片)
      用户访问网站(获取图片) --- LVS --- 负载均衡 --- web01 --- nfs存储服务器 (读)
      用户访问网站(获取图片) --- 负载均衡 --- web01 --- nfs存储服务器 (读)
      用户访问网站(获取图片)
      用户访问网站(获取图片) --- CDN ---LVS --- 负载均衡 --- web01 --- nfs存储服务器 (读)
      用户访问网站(获取图片) --- 负载均衡 --- web01 --- nfs存储服务器 (读)
      用户访问网站(获取图片)
      将架构中有瓶颈服务器的压力,向前推
      原理:nginx(epoll) 和 apache(select) 进行对比
      select(宿舍管理员/幼儿园阿姨)
      找宿舍人员---宿舍管理员---一个一个访问查询相关(遍历过程)
      看孩子 ---幼儿园阿姨---一个一个小朋友进行确认是否上厕所

        epoll(宿舍管理)
        找宿舍人员---宿舍管理员---名单册 检索名单册
        看孩子    ---幼儿园阿姨---只要有想上厕所都站在指定位置
      
    3. nginx软件安装部署
      方法一:利用官方源进行yum安装 最新的稳定版 配置目录结构 conf.d
      web01
      第一个历程:更新yum源
      vim /etc/yum.repos.d/nginx.repo
      [nginx-stable]
      name=nginx stable repo
      baseurl=http://nginx.org/packages/centos/releasever/basearch/
      gpgcheck=0
      enabled=1
      gpgkey=https://nginx.org/keys/nginx_signing.key
      第二个历程:nginx软件yum安装
      yum install -y nginx

      方法二:利用非官方源进行yum安装 稳定版
      web02
      yum install -y nginx

      方法三:编译安装软件
      web03
      第一个历程:获取源码文件
      mkdir /server/tools -p
      cd /server/tools
      wget http://nginx.org/download/nginx-1.16.0.tar.gz

    第二个历程:解压源码包,解决软件依赖问题
    tar xf nginx-1.16.0.tar.gz
    yum install -y pcre-devel openssl-devel 
    pcre-devel    --- 兼容perl正则信息
    openssl-devel --- 实现部署HTTPS网站
    
    第三个历程:编译安装软件
    1)配置过程
    cd nginx-1.16.0
    ./configure 
     --prefix=指定程序保存目录 
     --user=nginx服务worker进程管理用户
     --group=nginx服务worker进程管理用户组
     --with-http_ssl_module          -- 实现激活HTTPS访问功能
     --with-http_stub_status_module  -- 实现激活nginx状态监控功能
    
    ./configure --prefix=/application/nginx-1.16.0 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
    
    2)编译过程(翻译过程) (c c++ java python go -- 翻译过程 -- 内核 -- 硬件)
    make
    
    3)编译安装
    make install
    
    1. nginx软件配置应用
      软件目录结构 (配置文件目录 站点目录 日志目录)
      /etc/nginx/ --- 保存nginx配置文件
      两个重要的配置文件

      1. nginx/nginx.conf --- 主配置文件
      2. nginx/conf.d/default.conf --- 虚拟主机模板配置文件

      接口信息
      用户访问请求(静态) --- nginx程序
      用户访问请求(动态) --- nginx程序 -fastcgi - php程序
      nginx程序 -uwsgi - python程序
      www.jd.com:80 (动态java) --- nginx程序(负载均衡) --- 数据转发 ip 后端800x --- tomcat程序(800x)

      /etc/share/nginx/html --- 站点目录 将网络资源信息规范存储
      /var/log/nginx --- 日志目录 错误日志 访问日志(分析用户访问行为)

      配置文件内容说明
      nginx.conf
      user www; --- 指定worker进程用户信息 虚拟用户管理worker
      master process:控制服务可以正常运行 公司老板
      worker process:工作进程,处理用户请求 公司职员
      worker_processes 10; --- 指定worker进程数量 进程数量<服务器核心数量 <服务器核心数量2倍
      增加worker进程数量,增加服务并行处理能力

      error_log /var/log/nginx/error.log warn; --- 指定错误日志保存的路径
      定义记录错误信息级别:
      1. debug 调试级别 产生输出的信息最详细
      2. info 信息级别 产生输出详细信息
      3. notice 通知级别 产生输出详细信息
      4. warn 警告级别 产生提示可能有问题信息 (推荐)
      5. error 错误级别 产生服务错误信息 (推荐)
      6. crit 严重级别 产生服务错误信息
      7. alert 极其严重
      8,emerg 灾难级别 记录日志信息最少
      pid /var/run/nginx.pid; --- 记录日志pid数值信息
      events {
      worker_connections 2048; --- 一个worker进程可以同时处理几个连接
      总的最大并发连接数=worker_processesworker_connections<系统打开文件数
      [root@web01 nginx]# ulimit -a
      open files (-n) 1024
      将打开文件数修改为5 -- ssh服务 远程连接
      }
      http {
      include /etc/nginx/mime.types; --- 加载媒体资源类型文件 可以识别类型直接处理/不能处理交给动态程序或直接下载
      default_type application/octet-stream; --- 默认加载的类型
      log_format oldboy 'remote_addr -remote_user [time_local] "request" ' --- 定义访问日志格式
      'statusbody_bytes_sent "http_referer" ' '"http_user_agent" "$http_x_forwarded_for"';
      access_log /var/log/nginx/access.log oldboy; --- 调用定义的格式 指定访问日志存储路径
      sendfile on;
      #tcp_nopush on;
      keepalive_timeout 65; --- 设置TCP通讯的方式为长连接 0表示短连接
      #gzip on;
      include /etc/nginx/conf.d/
      .conf; --- 加载conf.d 所有以.conf结尾的文件配置
      网站主机配置文件
      }

      补充:nginx配置文件是由多个区块做成

      1. 主区块
      2. 事件区块 events {}
      3. HTTP区块 HTTP {} --- 指定网站服务进行加载文件信息 访问日志信息 服务优化配置
      4. server区块 server {} --- 定义网站信息 www.oldboy.com
      5. location区块 location {} --- 匹配区块 匹配uri信息 ???
      6. if区块 if {} --- 做判断处理

      虚拟主机配置文件:每个网站配置文件 www bbs blog
      vim /etc/nginx/conf.d/www.conf
      server {
      listen 80; --- www网站监听端口
      server_name www.oldboyedu.com; --- 定义你的网站域名信息
      location / { --- ???
      root /html/www; --- 指定站点目录
      index index.html index.htm; --- 定义首页文件
      }
      error_page 500 502 503 504 /50x.html; --- 错误页面优雅显示配置
      location = /50x.html { --- 匹配指定uri
      root /usr/share/nginx/html; --- 设置指点目录
      }
      }

      一般服务无法启动如何排错:

      1. 进行配置文件语法检查
        nginx -t
      2. nginx配置文件规范
        规范一:大括号信息必须成对
        规范二:所有指令信息后面必须有分号
        规范三:配置指令信息必须符合要求
    2. 企业环境如何使用nginx

      1. 配置多个网站页面环境
        第一个历程部分:
        server {
        listen 80;
        server_name www.oldboy.com;
        location / {
        root /html/www;
        index index.html index.htm;
        }

        error_page 404 500 502 503 504 https://www.qq.com/babygohome/?pgv_ref=404;

        location = /oldboy.jpg {

        root /html;

        }

      }
      server {
      listen 80;
      server_name bbs.oldboy.com;
      location / {
      root /html/bbs;
      index index.html index.htm;
      }
      #error_page 500 502 503 504 /50x.html;
      #location = /50x.html {
      # root /usr/share/nginx/html;
      #}
      }
      server {
      listen 80;
      server_name blog.oldboy.com;
      location / {
      root /html/blog;
      index index.html index.htm;
      }
      #error_page 500 502 503 504 /50x.html;
      #location = /50x.html {
      # root /usr/share/nginx/html;
      #}
      }

      第二个历程:创建站点目录并创建首页文件
      mkdir /html/{www,bbs,blog} -p
      for name in {www,bbs,blog};do echo name.oldboy.com >/html/name/index.html;done

      第三个历程:配置好解析信息
      本地进行解析
      10.0.0.7 www.oldboy.com bbs.oldboy.com blog.oldboy.com

      1. 虚拟主机的访问方式
        a 基于域名方式访问 企业环境
        b 基于端口方式访问 内部页面平台
        c 基于地址方式访问 提升网站安全 监听内网地址
        PS:nginx配置文件中涉及到地址修改,需要重启服务(不是平滑重启)

      2. 显示网站目录索引信息(利用web服务实现文件共享)
        第一个历程:修改文件配置
        server {
        listen 80;
        server_name bbs.oldboy.com;
        location / {
        root /html/bbs;
        autoindex on;
        }
        }
        第二个历程:删除首页文件(index.html)

        PS:403状态码出现的原因

        1. 对访问用户地址进行阻止
        2. 访问的首页文件不存在
      3. 网站页面安全配置方法
        1)对网站页面配置认证功能
        oldboy sa 运维人员 密码 oldboy123
        oldgirl dev开发人员 密码 oldgirl123
        第一个历程:编写配置文件
        server {
        listen 80;
        server_name bbs.oldboy.com;
        location / {
        root /html/bbs;
        autoindex on;
        auth_basic "oldboy60";
        auth_basic_user_file conf/htpasswd;
        }
        }

        第二个历程:需要生成密码文件
        yum install -y httpd-tools
        htpasswd -bc /etc/nginx/conf/htpasswd oldboy oldboy123 --- 创建密码文件并设置用户和密码
        htpasswd -b /etc/nginx/conf/htpasswd oldgirl oldgirl12 --- 在文件中追加新的用户和密码信息

        PS:如果认证不通过会显示401错误

        2)对访问用户访问资源进行策略阻止
        防止有用户攻击网站/爬网站资源
        第一个历程:编写配置文件
        [root@web01 bbs]# cat /etc/nginx/conf.d/bbs.conf
        server {
        listen 80;
        server_name bbs.oldboy.com;
        location / {
        root /html/bbs;
        #index index.html index.htm;
        autoindex on;
        auth_basic "oldboy60";
        auth_basic_user_file conf/htpasswd;
        }
        location /dev {
        root /html/bbs;
        autoindex on;
        allow 10.0.0.0/24;
        deny 10.0.1.0/24;
        }
        location /sa {
        root /html/bbs;
        autoindex on;
        deny 10.0.0.0/24;
        allow 10.0.1.0/24;
        }
        }

    1. 课程知识总结说明
      1. nginx网站服务概念介绍 特点 功能 原理(epoll)
      2. nginx网站服务部署过程 3种安装方式 源码编译安装更加灵活
      3. nginx网站服务目录结构 配置目录(nginx.conf conf.d/www.conf mime.type)
      4. nginx网站配置文件信息 root index location rewrite
      5. nginx网站企业应用配置
        1. 多个网站页面配置 多个server配置文件
        2. 访问网站多种方式 基于域名 基于地址 基于端口
        3. 显示网站目录结构 实现网站服务器充当FTP服务器 autoindex
        4. 网站访问安全配置
          1)基于认证访问 如果看不到页面401
          2)网站访问控制 根据用户源IP地址,进行访问控制 deny allow

    异常问题:
    IE: 会显示文件信息???

    作业:

    1. 如何进行网站压力测试 ab Webbench LoadRunner
    2. 下次课程
      1)nginx服务状态模块功能
      2)nginx服务日志作用
      3)nginx服务location模块
      4)nginx服务跳转功能 rewrite
      5)nginx服务HTTPS访问 证书
      6)网站LNMP架构
      搭建自己博客网站
      购买云主机(外网地址) 购买域名(备案) 免费证书
      https://www.xuliangwei.com/

    相关文章

      网友评论

          本文标题:nginx1-网站服务部署

          本文链接:https://www.haomeiwen.com/subject/dnatfhtx.html