-
1-1 课程介绍;
https://w3techs.com/ web站点使用技术调查网站;
1、Nginx的优点
- 高效
- 可靠
- 开源
2、成长历程
- 菜鸟级
- 探索级
- 较大的收获
3、之前存在的问题
- Nginx知识体系不系统
- 操作场景简单
- 在此可系统了解原理
- 分析相关隐患
- 应对出现问题无从下手
4、课程目标
- 手把手配置场景
- 全面了解配置语法
- 源于实战经验而成
- 层次化了解Nginx
- 详细介绍重难点
5、收获
- 代理服务
- 动态缓存
- 动静分离场景
- 负载均衡
- Nginx与LUA开发
- 核心模块配置
- 基于企业中常见的应用场景
- Nginx的应用层安全防护
- 基于Nginx的中间件架构的性能优化问题
- 对SQL的防注入攻击
- 对请求的访问控制
- 对请求的频率控制
- 对防爬虫
6、Nginx性能优化
- http性能压测(ab工具)
- 性能瓶颈的分析
- 系统性能优化
- 基于Nginx的性能配置优化
7、完善整个知识体系
1)基础篇
- 快速安装
- 配置语法
- 默认模块介绍
- Nginx的log
- 访问限制
- HTTP的请求和连接
- 请求和连接限制
- access模块配置语法
- 请求限制的局限性
- 基本安全认证
- auth模块配置语法
- 安全认证局限性
2)场景实战篇
- 静态资源的Web服务
- 什么是静态资源
- 静态资源服务场景
- 静态资源服务配置
- 客户端缓存
- 静态资源的压缩
- 防盗链
- 跨域访问
- 代理服务
- 负载均衡
- 缓存服务
3)深度学习篇
- 动静分离
- rewrite规则
- 进阶模块配置
- HTTPS服务
- HTTPS协议介绍
- 配置语法
- Nginx的HTTPS服务
- 苹果要求的HTTPS
- Nginx与LUA开发
4)架构篇
- 常见问题
- Nginx中间件性能优化
- 如何调试性能优化
- 性能优化影响因素
- 操作系统性能优化
- Nginx性能优化
- Nginx与安全
- 新版本特性
- 中间件架构设计
5)Leader思想
- 实战经验的考验磨合
- 指引团队前进的方向
- 提升团队技术
1-2学习环境准备;
1、硬件环境:CPU>2核心 and 内存>256M;操作系统版本:CentOS>=7.0(cat /etc/redhat-release)
- 物理服务器
- 阿里云ECS
- VMware
- Docker
2、环境调试确认
- 4项确认
- 1、公网可用——ping www.jd.com -c 4
- 2、yum源可用——yum list|grep gcc
- 3、关闭iptables规则——iptables -L -F
- 4、关闭selinux——getenforce、setenforce 0
- 两项基础安装
- yum install -y gcc gcc++ autoconf pcre pcre-devel make automake
- yum install -y wget httpd-tools vim
- 建立初始化目录——mkdir -p /opt/{app,download,logs,work,backup}
3、安装确认
Connecting to 47.95.234.20:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Last login: Sat May 26 11:22:33 2018 from 223.72.56.222 Welcome to Alibaba Cloud Elastic Compute Service ! [root@iZqmo9i3j77p7eZ ~]# ping www.baidu.com PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data. 64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=1 ttl=53 time=4.04 ms 64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=2 ttl=53 time=4.13 ms 64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=3 ttl=53 time=4.11 ms 64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=4 ttl=53 time=4.08 ms ^C --- www.a.shifen.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 4.049/4.096/4.135/0.084 ms [root@iZqmo9i3j77p7eZ ~]# yum list|grep gcc gcc.x86_64 4.8.5-16.el7 @base libgcc.x86_64 4.8.5-16.el7 @anaconda avr-gcc.x86_64 4.9.2-1.el7 epel avr-gcc-c++.x86_64 4.9.2-1.el7 epel compat-gcc-44.x86_64 4.4.7-8.el7 base compat-gcc-44-c++.x86_64 4.4.7-8.el7 base compat-gcc-44-gfortran.x86_64 4.4.7-8.el7 base cross-gcc-common.noarch 4.8.5-16.el7.1 epel gcc.x86_64 4.8.5-28.el7_5.1 updates gcc-aarch64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-alpha-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-arm-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-avr32-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-bfin-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++.x86_64 4.8.5-28.el7_5.1 updates gcc-c++-aarch64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-alpha-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-arm-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-avr32-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-bfin-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-c6x-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-cris-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-frv-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-h8300-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-hppa-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-hppa64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-ia64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-m32r-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-m68k-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-microblaze-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-mips64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-mn10300-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-powerpc64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-ppc64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-s390x-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-sh-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-sh64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-sparc64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-tile-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-x86_64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c++-xtensa-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-c6x-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-cris-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-frv-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-gfortran.x86_64 4.8.5-28.el7_5.1 updates gcc-gnat.x86_64 4.8.5-28.el7_5.1 updates gcc-go.x86_64 4.8.5-28.el7_5.1 updates gcc-h8300-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-hppa-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-hppa64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-ia64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-m32r-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-m68k-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-microblaze-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-mips64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-mn10300-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-objc.x86_64 4.8.5-28.el7_5.1 updates gcc-objc++.x86_64 4.8.5-28.el7_5.1 updates gcc-plugin-devel.x86_64 4.8.5-28.el7_5.1 updates gcc-powerpc64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-ppc64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-s390x-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-sh-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-sh64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-sparc64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-tile-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-x86_64-linux-gnu.x86_64 4.8.5-16.el7.1 epel gcc-xtensa-linux-gnu.x86_64 4.8.5-16.el7.1 epel gccxml.x86_64 0.9.0-0.27.20150423.git3afa8ba.el7 libgcc.i686 4.8.5-28.el7_5.1 updates libgcc.x86_64 4.8.5-28.el7_5.1 updates mingw32-gcc.x86_64 4.9.3-1.el7 epel mingw32-gcc-c++.x86_64 4.9.3-1.el7 epel mingw32-gcc-gfortran.x86_64 4.9.3-1.el7 epel mingw32-gcc-objc.x86_64 4.9.3-1.el7 epel mingw32-gcc-objc++.x86_64 4.9.3-1.el7 epel mingw64-gcc.x86_64 4.9.3-1.el7 epel mingw64-gcc-c++.x86_64 4.9.3-1.el7 epel mingw64-gcc-gfortran.x86_64 4.9.3-1.el7 epel mingw64-gcc-objc.x86_64 4.9.3-1.el7 epel mingw64-gcc-objc++.x86_64 4.9.3-1.el7 epel relaxngcc.noarch 1.12-6.el7 base relaxngcc-javadoc.noarch 1.12-6.el7 base [root@iZqmo9i3j77p7eZ ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@iZqmo9i3j77p7eZ ~]# iptables -F [root@iZqmo9i3j77p7eZ ~]# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination [root@iZqmo9i3j77p7eZ ~]# iptables -t nat -F [root@iZqmo9i3j77p7eZ ~]# getenforce Disabled [root@iZqmo9i3j77p7eZ ~]# setenforce 0 setenforce: SELinux is disabled [root@iZqmo9i3j77p7eZ ~]# yum install -y gcc gcc-c++ autoconfg pcre pcre-devel make automake Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com No package autoconfg available. Package pcre-8.32-17.el7.x86_64 already installed and latest version Package 1:make-3.82-23.el7.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package automake.noarch 0:1.13.4-3.el7 will be installed --> Processing Dependency: autoconf >= 2.65 for package: automake-1.13.4-3.el7.noarch --> Processing Dependency: perl(Thread::Queue) for package: automake-1.13.4-3.el7.noarch --> Processing Dependency: perl(TAP::Parser) for package: automake-1.13.4-3.el7.noarch ---> Package gcc.x86_64 0:4.8.5-16.el7 will be updated ---> Package gcc.x86_64 0:4.8.5-28.el7_5.1 will be an update --> Processing Dependency: libgomp = 4.8.5-28.el7_5.1 for package: gcc-4.8.5-28.el7_5.1.x86_64 --> Processing Dependency: cpp = 4.8.5-28.el7_5.1 for package: gcc-4.8.5-28.el7_5.1.x86_64 --> Processing Dependency: libgcc >= 4.8.5-28.el7_5.1 for package: gcc-4.8.5-28.el7_5.1.x86_64 ---> Package gcc-c++.x86_64 0:4.8.5-28.el7_5.1 will be installed --> Processing Dependency: libstdc++-devel = 4.8.5-28.el7_5.1 for package: gcc-c++-4.8.5-28.el7_5.1.x86_64 --> Processing Dependency: libstdc++ = 4.8.5-28.el7_5.1 for package: gcc-c++-4.8.5-28.el7_5.1.x86_64 ---> Package pcre-devel.x86_64 0:8.32-17.el7 will be installed --> Running transaction check ---> Package autoconf.noarch 0:2.69-11.el7 will be installed --> Processing Dependency: perl(Data::Dumper) for package: autoconf-2.69-11.el7.noarch ---> Package cpp.x86_64 0:4.8.5-16.el7 will be updated ---> Package cpp.x86_64 0:4.8.5-28.el7_5.1 will be an update ---> Package libgcc.x86_64 0:4.8.5-16.el7 will be updated ---> Package libgcc.x86_64 0:4.8.5-28.el7_5.1 will be an update ---> Package libgomp.x86_64 0:4.8.5-16.el7 will be updated ---> Package libgomp.x86_64 0:4.8.5-28.el7_5.1 will be an update ---> Package libstdc++.x86_64 0:4.8.5-16.el7 will be updated ---> Package libstdc++.x86_64 0:4.8.5-28.el7_5.1 will be an update ---> Package libstdc++-devel.x86_64 0:4.8.5-28.el7_5.1 will be installed ---> Package perl-Test-Harness.noarch 0:3.28-3.el7 will be installed ---> Package perl-Thread-Queue.noarch 0:3.02-2.el7 will be installed --> Running transaction check ---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================================================================================================== Package Arch Version Repository Size ============================================================================================================================================================================================================================================================================== Installing: automake noarch 1.13.4-3.el7 base 679 k gcc-c++ x86_64 4.8.5-28.el7_5.1 updates 7.2 M pcre-devel x86_64 8.32-17.el7 base 480 k Updating: gcc x86_64 4.8.5-28.el7_5.1 updates 16 M Installing for dependencies: autoconf noarch 2.69-11.el7 base 701 k libstdc++-devel x86_64 4.8.5-28.el7_5.1 updates 1.5 M perl-Data-Dumper x86_64 2.145-3.el7 base 47 k perl-Test-Harness noarch 3.28-3.el7 base 302 k perl-Thread-Queue noarch 3.02-2.el7 base 17 k Updating for dependencies: cpp x86_64 4.8.5-28.el7_5.1 updates 5.9 M libgcc x86_64 4.8.5-28.el7_5.1 updates 101 k libgomp x86_64 4.8.5-28.el7_5.1 updates 156 k libstdc++ x86_64 4.8.5-28.el7_5.1 updates 303 k Transaction Summary ============================================================================================================================================================================================================================================================================== Install 3 Packages (+5 Dependent packages) Upgrade 1 Package (+4 Dependent packages) Total download size: 34 M Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. (1/13): automake-1.13.4-3.el7.noarch.rpm | 679 kB 00:00:00 (2/13): autoconf-2.69-11.el7.noarch.rpm | 701 kB 00:00:00 (3/13): libgcc-4.8.5-28.el7_5.1.x86_64.rpm | 101 kB 00:00:00 (4/13): cpp-4.8.5-28.el7_5.1.x86_64.rpm | 5.9 MB 00:00:00 (5/13): libstdc++-4.8.5-28.el7_5.1.x86_64.rpm | 303 kB 00:00:00 (6/13): libgomp-4.8.5-28.el7_5.1.x86_64.rpm | 156 kB 00:00:00 (7/13): gcc-c++-4.8.5-28.el7_5.1.x86_64.rpm | 7.2 MB 00:00:00 (8/13): libstdc++-devel-4.8.5-28.el7_5.1.x86_64.rpm | 1.5 MB 00:00:00 (9/13): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:00 (10/13): perl-Test-Harness-3.28-3.el7.noarch.rpm | 302 kB 00:00:00 (11/13): perl-Thread-Queue-3.02-2.el7.noarch.rpm | 17 kB 00:00:00 (12/13): gcc-4.8.5-28.el7_5.1.x86_64.rpm | 16 MB 00:00:00 (13/13): pcre-devel-8.32-17.el7.x86_64.rpm | 480 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 49 MB/s | 34 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : libgcc-4.8.5-28.el7_5.1.x86_64 1/18 Updating : libstdc++-4.8.5-28.el7_5.1.x86_64 2/18 Installing : libstdc++-devel-4.8.5-28.el7_5.1.x86_64 3/18 Updating : cpp-4.8.5-28.el7_5.1.x86_64 4/18 Installing : perl-Thread-Queue-3.02-2.el7.noarch 5/18 Installing : perl-Test-Harness-3.28-3.el7.noarch 6/18 Installing : perl-Data-Dumper-2.145-3.el7.x86_64 7/18 Installing : autoconf-2.69-11.el7.noarch 8/18 Updating : libgomp-4.8.5-28.el7_5.1.x86_64 9/18 Updating : gcc-4.8.5-28.el7_5.1.x86_64 10/18 Installing : gcc-c++-4.8.5-28.el7_5.1.x86_64 11/18 Installing : automake-1.13.4-3.el7.noarch 12/18 Installing : pcre-devel-8.32-17.el7.x86_64 13/18 Cleanup : gcc-4.8.5-16.el7.x86_64 14/18 Cleanup : libstdc++-4.8.5-16.el7.x86_64 15/18 Cleanup : libgcc-4.8.5-16.el7.x86_64 16/18 Cleanup : cpp-4.8.5-16.el7.x86_64 17/18 Cleanup : libgomp-4.8.5-16.el7.x86_64 18/18 Verifying : libgomp-4.8.5-28.el7_5.1.x86_64 1/18 Verifying : libgcc-4.8.5-28.el7_5.1.x86_64 2/18 Verifying : autoconf-2.69-11.el7.noarch 3/18 Verifying : perl-Data-Dumper-2.145-3.el7.x86_64 4/18 Verifying : libstdc++-devel-4.8.5-28.el7_5.1.x86_64 5/18 Verifying : perl-Test-Harness-3.28-3.el7.noarch 6/18 Verifying : gcc-4.8.5-28.el7_5.1.x86_64 7/18 Verifying : perl-Thread-Queue-3.02-2.el7.noarch 8/18 Verifying : pcre-devel-8.32-17.el7.x86_64 9/18 Verifying : cpp-4.8.5-28.el7_5.1.x86_64 10/18 Verifying : automake-1.13.4-3.el7.noarch 11/18 Verifying : libstdc++-4.8.5-28.el7_5.1.x86_64 12/18 Verifying : gcc-c++-4.8.5-28.el7_5.1.x86_64 13/18 Verifying : libgcc-4.8.5-16.el7.x86_64 14/18 Verifying : libstdc++-4.8.5-16.el7.x86_64 15/18 Verifying : libgomp-4.8.5-16.el7.x86_64 16/18 Verifying : cpp-4.8.5-16.el7.x86_64 17/18 Verifying : gcc-4.8.5-16.el7.x86_64 18/18 Installed: automake.noarch 0:1.13.4-3.el7 gcc-c++.x86_64 0:4.8.5-28.el7_5.1 pcre-devel.x86_64 0:8.32-17.el7 Dependency Installed: autoconf.noarch 0:2.69-11.el7 libstdc++-devel.x86_64 0:4.8.5-28.el7_5.1 perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-Test-Harness.noarch 0:3.28-3.el7 perl-Thread-Queue.noarch 0:3.02-2.el7 Updated: gcc.x86_64 0:4.8.5-28.el7_5.1 Dependency Updated: cpp.x86_64 0:4.8.5-28.el7_5.1 libgcc.x86_64 0:4.8.5-28.el7_5.1 libgomp.x86_64 0:4.8.5-28.el7_5.1 libstdc++.x86_64 0:4.8.5-28.el7_5.1 Complete! [root@iZqmo9i3j77p7eZ ~]# yum install -y wget httpd-tools vim Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Resolving Dependencies --> Running transaction check ---> Package httpd-tools.x86_64 0:2.4.6-80.el7.centos will be installed --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-tools-2.4.6-80.el7.centos.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-tools-2.4.6-80.el7.centos.x86_64 ---> Package vim-enhanced.x86_64 2:7.4.160-2.el7 will be updated ---> Package vim-enhanced.x86_64 2:7.4.160-4.el7 will be an update --> Processing Dependency: vim-common = 2:7.4.160-4.el7 for package: 2:vim-enhanced-7.4.160-4.el7.x86_64 ---> Package wget.x86_64 0:1.14-15.el7 will be updated ---> Package wget.x86_64 0:1.14-15.el7_4.1 will be an update --> Running transaction check ---> Package apr.x86_64 0:1.4.8-3.el7_4.1 will be installed ---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed ---> Package vim-common.x86_64 2:7.4.160-2.el7 will be updated ---> Package vim-common.x86_64 2:7.4.160-4.el7 will be an update --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================================================================================================== Package Arch Version Repository Size ============================================================================================================================================================================================================================================================================== Installing: httpd-tools x86_64 2.4.6-80.el7.centos base 89 k Updating: vim-enhanced x86_64 2:7.4.160-4.el7 base 1.0 M wget x86_64 1.14-15.el7_4.1 base 547 k Installing for dependencies: apr x86_64 1.4.8-3.el7_4.1 base 103 k apr-util x86_64 1.5.2-6.el7 base 92 k Updating for dependencies: vim-common x86_64 2:7.4.160-4.el7 base 5.9 M Transaction Summary ============================================================================================================================================================================================================================================================================== Install 1 Package (+2 Dependent packages) Upgrade 2 Packages (+1 Dependent package) Total download size: 7.8 M Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. (1/6): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:00 (2/6): httpd-tools-2.4.6-80.el7.centos.x86_64.rpm | 89 kB 00:00:00 (3/6): apr-1.4.8-3.el7_4.1.x86_64.rpm | 103 kB 00:00:00 (4/6): vim-common-7.4.160-4.el7.x86_64.rpm | 5.9 MB 00:00:00 (5/6): wget-1.14-15.el7_4.1.x86_64.rpm | 547 kB 00:00:00 (6/6): vim-enhanced-7.4.160-4.el7.x86_64.rpm | 1.0 MB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 25 MB/s | 7.8 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : apr-1.4.8-3.el7_4.1.x86_64 1/9 Installing : apr-util-1.5.2-6.el7.x86_64 2/9 Updating : 2:vim-common-7.4.160-4.el7.x86_64 3/9 Updating : 2:vim-enhanced-7.4.160-4.el7.x86_64 4/9 Installing : httpd-tools-2.4.6-80.el7.centos.x86_64 5/9 Updating : wget-1.14-15.el7_4.1.x86_64 6/9 Cleanup : 2:vim-enhanced-7.4.160-2.el7.x86_64 7/9 Cleanup : 2:vim-common-7.4.160-2.el7.x86_64 8/9 Cleanup : wget-1.14-15.el7.x86_64 9/9 Verifying : wget-1.14-15.el7_4.1.x86_64 1/9 Verifying : apr-util-1.5.2-6.el7.x86_64 2/9 Verifying : 2:vim-enhanced-7.4.160-4.el7.x86_64 3/9 Verifying : 2:vim-common-7.4.160-4.el7.x86_64 4/9 Verifying : httpd-tools-2.4.6-80.el7.centos.x86_64 5/9 Verifying : apr-1.4.8-3.el7_4.1.x86_64 6/9 Verifying : wget-1.14-15.el7.x86_64 7/9 Verifying : 2:vim-common-7.4.160-2.el7.x86_64 8/9 Verifying : 2:vim-enhanced-7.4.160-2.el7.x86_64 9/9 Installed: httpd-tools.x86_64 0:2.4.6-80.el7.centos Dependency Installed: apr.x86_64 0:1.4.8-3.el7_4.1 apr-util.x86_64 0:1.5.2-6.el7 Updated: vim-enhanced.x86_64 2:7.4.160-4.el7 wget.x86_64 0:1.14-15.el7_4.1 Dependency Updated: vim-common.x86_64 2:7.4.160-4.el7 Complete! [root@iZqmo9i3j77p7eZ ~]# cd /opt/ [root@iZqmo9i3j77p7eZ opt]# ls [root@iZqmo9i3j77p7eZ opt]# mkdir -p {app,backup,download,logs,work} [root@iZqmo9i3j77p7eZ opt]# ls /opt/ app backup download logs work