zoukankan      html  css  js  c++  java
  • 马哥博客作业第十五周

    1、写出 MPM multi-processing module 工作模式原理以及区别

      prefork MPM: 有一个主控制进程,然后生成多个子进程,每个子进程有一个独立的线程处理用户的请求,相对比较占用内存,但是比较稳定,可以设置最大和最小进程数,适用于访问量不是很大的场景。

      worker MPM: 是一种多进程和多线程混合的模型,有一个控制进程,启动多个子进程,每个子进程里面包含固定的线程,使用线程来处理请求,当线程不够使用的时候会再启动一个新的子进程,然后在新的进程里面启动线程来处理请求,由于使用了线程来处理请求,因此可以承受更高的并发。

      event MPM: worker模型的变种,一个主进程,生成多个子进程,每个子进程生成多个线程,每个线程处理一个请求。和worker模型的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题,有一个专门的线程来管理keep-alive的线程,当有真实请求的时候,将请求传递给服务线程,执行完毕后,又允许它释放,这样增强了高并发场景下的请求处理能力。

    2、编译安装httpd 2.4

      [root@localhost ~]#cat scripts/httpd-2.4.46_install.sh
      #! /bin/bash

      # 安装相关包
      yum -y install wget gcc make pcre-devel openssl-devel expat-devel

      # 下载源代码并解压缩
      wget -P /usr/local/src/ https://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
      wget -P /usr/local/src/ https://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
      wget -P /usr/local/src/ https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
      cd /usr/local/src/
      tar xf apr-1.7.0.tar.gz
      tar xf apr-util-1.6.1.tar.gz
      tar xf httpd-2.4.46.tar.gz

      # 将apr和apr-util源码与httpd源码合并,三者共同编译安装
      mv apr-1.7.0 httpd-2.4.46/srclib/apr
      mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
      cd httpd-2.4.46/
      ./configure --prefix=/apps/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre
      --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
      make && make install

      # 创建apache账户
      useradd -r -s /sbin/nologin apache

      # 修改配置文件
      sed -i 's/^User.*/User apache/' /apps/httpd/conf/httpd.conf
      sed -i 's/^Group.*/Group apache/' /apps/httpd/conf/httpd.conf

      # 配置环境变量
      echo 'PATH="/apps/httpd/bin:$PATH"' > /etc/profile.d/httpd.sh
      . /etc/profile.d/httpd.sh

      # 配置man帮助
      echo 'MANDATORY_MANPATH /apps/httpd/man' >> /etc/man_db.conf

      # 创建service unit文件,设置开机启动
      cat > /lib/systemd/system/httpd.service << EOF
      [Unit]
      Description=The Apache HTTP Server
      After=network.target remote-fs.target nss-lookup.target
      Documentation=man:httpd(8)
      Documentation=man:apachectl(8)

      [Service]
      Type=forking
      ExecStart=/apps/httpd/bin/apachectl start
      ExecReload=/apps/httpd/bin/apachectl graceful
      ExecStop=/apps/httpd/bin/apachectl stop
      # We want systemd to give httpd some time to finish gracefully, but still want
      # it to kill httpd after TimeoutStopSec if something went wrong during the
      # graceful stop. Normally, Systemd sends SIGTERM signal right after the
      # ExecStop, which would kill httpd. We are sending useless SIGCONT here to give
      # httpd time to finish.
      KillSignal=SIGCONT
      PrivateTmp=true

      [Install]
      WantedBy=multi-user.target
      EOF

      systemctl daemon-reload
      systemctl enable --now httpd.service

    3、编写一个一键部署 LAMP 架构之 wordpress 脚本

      [root@CentOS8 ~]#cat centos8_lamp_wordpress.sh
      #!/bin/bash

      # 下载相关包
      yum -y install wget httpd php php-json php-mysqlnd mariadb-server

      # 修改httpd的mpm工作模型为prefork
      sed -Ei 's/LoadModule mpm_event_module.*/#&/' /etc/httpd/conf.modules.d/00-mpm.conf
      sed -Ei 's/#(LoadModule mpm_prefork_module.*)/1/' /etc/httpd/conf.modules.d/00-mpm.conf

      # 开启相应的服务并设置为开机启动
      systemctl enable --now httpd mariadb

      # 下载wordpress安装包,并将解压缩的目录文件移动到html目录下,修改文件的属性
      wget https://cn.wordpress.org/latest-zh_CN.tar.gz
      tar xf wordpress-5.4.2-zh_CN.tar.gz
      mv wordpress/* /var/www/html/
      chown apache.apache /var/www/html/ -R

      # 创建对应的数据库和用户
      echo 'create database wordpress;' | mysql
      echo "grant all on wordpress.* to wpuser@'localhost' identified by '123456';" | mysql

      # 浏览器访问http://lamp服务器

  • 相关阅读:
    虚函数表
    写出float x 与“零值”比较的if语句
    系统表的构成
    UEFI的inf文件构成
    最短路径算法
    EDK2与EDK2工具链关系图
    GIT提交本地文件
    docker学习笔记-04:docker容器数据卷
    docker学习笔记-03:docker的镜像原理
    docker学习笔记-02:docker常用命令
  • 原文地址:https://www.cnblogs.com/babyblue3/p/13622676.html
Copyright © 2011-2022 走看看