zoukankan      html  css  js  c++  java
  • 容器化的Apache服务并监控

    1:基础容器编译部署apache

    1.1:pull一个ubuntu 16.04的镜像

    sudo docker pull ubuntu:16.04

    1.2:运行容器  

    sudo docker run -d --name ubuntu -p 80:80 ubuntu:16.04

    1.3:安装ubuntu依赖项

    apt update

    apt-get install vim

    apt-get install net-tools

    apt-get install iputils-ping

    apt-get install openssh-server

    apt-get install openssh-client

    apt-get install lrzsz

    apt-get install gcc

    apt-get install libpcre3 libpcre3-dev

    apt-get install make

    apt-get install openssl libssl-dev

    apt-get install libxml2 libxml2-dev

    apt-get install zip unzip

    apt-get install libexpat1-dev

    apt-get install libnghttp2-dev

    1.4:创建安装目录

    mkdir /etc/apache2

    mkdir /etc/apache2/src

    cd /etc/apache2/src

    1.5:下载源码并解压

    如果路径失效,需要去官网下载相应的安装包

    wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz

    wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz

    wget http://apache.mirrors.lucidnetworks.net//httpd/httpd-2.4.27.tar.gz

    wget http://cn2.php.net/distributions/php-7.1.8.tar.gz

    tar -xvf apr-1.5.2.tar.gz

    tar -xvf apr-util-1.5.4.tar.gz

    tar -xvf httpd-2.4.27.tar.gz

    tar -xvf php-7.1.8.tar.gz

    mv -f apr-1.5.2 httpd-2.4.27/srclib/apr

    mv -f apr-util-1.5.4 httpd-2.4.27/srclib/apr-util

    1.6:安装依赖包zlib1g,zlib1g.dev

    直接安装

    sudo apt-get install libpcre3 libpcre3-dev  

    编译安装

    http://jaist.dl.sourceforge.net/project/pcre/pcre/ 下载

    得到文件: pcre-8.32.tar.gz

    解压:tar -zxvf pcre-8.32.tar.gz

    编译:

    cd /home/tnuser/hunter/installers/pcre-8.32    

    /configure --prefix=/home/tnuser/pcre/  

    1.7:安装依赖包openssl和openssl-devel

    直接安装

    apt-get install openssl openssl-devel

    下载源码编译安装

    cd /etc/apache2/src

    wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz

    tar zxf openssl-1.0.2h.tar.gz

    cd openssl-1.0.2h

    ./config shared zlib

    如果提示 because of configuration changes, you MUST do the following before*** building:

    则需要在build之前做make depend

    make depend

    make

    make install

    mv /usr/bin/openssl /usr/bin/openssl.bak

    mv /usr/include/openssl /usr/include/openssl.bak

    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

    ln -s /usr/local/ssl/include/openssl /usr/include/openssl

    echo “/usr/local/ssl/lib” >> /etc/ld.so.conf

    ldconfig –v

    检测安装是否成功

    openssl version –a

    1.8:编译apache

    openssl version -a

    mkdir server_root

    cd src/httpd-2.4.27 ./configure --prefix=/etc/apache2/server_root --with-included-apr --with-mpm=worker --enable-so --enable-nonportable-atomics=yes --enable-ssl --enable-include --enable-cgi --enable-expires --enable-status --enable-info --enable-rewrite --enable-speling

    make

    make install

    mkdir /etc/apache2/php7

    cd /etc/apache2/src/php-7.1.8

    ./configure --with-apxs2=/etc/apache2/server_root/bin/apxs --prefix=/etc/apache2/php7

    make

    make test

    make install

    修改httpd.conf文件

    vim /etc/apache2/server_root/conf/httpd.conf

    在httpd.conf文件中添加:

    AddType application/x-httpd-php .php 

    AddType application/x-httpd-php-source .phps

    去掉httpd.conf里ServerName前面的注释: 

    重启apache服务

    cd /etc/apache2/server_root/bin

    ./apachectl start

    1.9:容器打包

     

    2:配置server-status 监控apache

    2.1:server-status简介

    server-status是Apache查看状态的一个功能模块,在Apache 1.3.2及以后的版本提供

    2.2:打开server-status

    vi /etc/apache2/server_root/conf/httpd.conf

    去掉LoadModule status_module modules/mod_status.so的注释

    修改Include 路径 为 /etc/apache2/server_root/conf/extra/httpd-info.conf

    修改配置如下

    vi /etc/apache2/server_root/conf/extra/httpd-info.conf

    <Location /server-status>

        SetHandler server-status

        Order deny,allow

    Allow from all

    Allow from 10.20.7.15

    </Location>

    去掉ExtendedStatus On 注释

    vi /etc/apache2/src/httpd-2.4.33

    ./configure --enable-module=so --enable-info

    重启apache

    cd /etc/apache2/server_root/bin

    ./apachectl restart

    3:镜像包部署apache

    3.1:拉取镜像

    Docker pull registry.cn-hangzhou.aliyuncs.com/zhufc/apache-status:zhu

    3.2:映射80端口

    docker run -d --name apache -p 80:80 registry.cn-hangzhou.aliyuncs.com/zhufc/apache-status:zhu

    3.3:进入容器启动apache

    docker exec -it da6a434c99e6 bash

    cd /etc/apache2/server_root/bin

    ./apachectl start

    3.4:容器后台运行

    Ctrl+alt+q+p 

    3.4:容器后台运行

    Ctrl+alt+q+p 

    4:页面验证apache监控

    http://10.20.7.15/server-status

    http://10.20.7.15/server-status/phpmyadmin

    两年之内,他从小白变成了月薪17k的高级测试

    点击这里,你的命运也将发生转折。。。

     

  • 相关阅读:
    测试成功的Python中文文件读写脚本
    Solaris 10上Matlab 7(R14)安装手记
    人生:对心物互作的反应
    破解windows登录密码的有效方法
    Java实现二维码QRCode的编码和解码
    java调用储存过程的方法
    Java多态性的两个特殊情况
    Java中的TCP/UDP网络通信编程
    C语言之详解#ifdef等宏及妙用
    26个Jquery使用小技巧
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/9088420.html
Copyright © 2011-2022 走看看