部署Apache服务 和Apache虚拟主机 Apache压力测试

一, 部署http服务

[root@localhost ~]# yum install -y httpd

[root@localhost ~]# systemctl start httpd
 
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled;
   Active: active (running) 
   ……
   ……
   
[root@localhost ~]# ss -tunlp | grep 80
tcp    LISTEN     0      128    [::]:80                 [::]:* 

 
[root@localhost ~]# systemctl enable httpd  
   
   
[root@localhost ~]# rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
------------------------------

     |——默认欢迎页面,需要删除或备份,不再使用它。
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
--------------------------
     |——服务配置文件(重要,这里就是APP的'设置面板')

/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
  

二,关闭防火墙

[root@localhost conf.d]# systemctl stop firewalld

 浏览器访问:http://ip地址/

三,取消默认的欢迎页面

[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# ls
autoindex.conf  php.conf  README  userdir.conf  welcome.conf  zabbix.conf
                                                ------------
                                                  |——默认欢迎页面,可以删除或备份
                                                  
[root@localhost conf.d]# mv  welcome.conf   welcome.conf.bak   

[root@localhost conf.d]# systemctl restart httpd    
                        -------------------------
                         |——重启服务,使其生效      

(1),自己写一个欢迎界面

echo "hello world" >/var/www/html/index.html

Apache虚拟主机

虚拟主机介绍:

虚拟web 主机指的是在同一台服务器中运行多个web 站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟” web 主机。通过虚拟web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

虚拟主机的分类:


httpd服务支持的虚拟主机类型有:

基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP 地址是相同的。例如,www.mynet.com 和 www.benet.com 对应的地址都是 192.168.23.13. 这是使用最普遍的虚拟web 主机类型

基于ip地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要服务器配置读个网络接口,因此使用的不是非常广泛

基于端口:这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用了不同的TCP 端口号。因此,用户在浏览不同的虚拟站点的时候,需要同时制定端口号才能访问

基于域名的虚拟主机:

(1) ,对添加的ip 地址做域名映射
[root@yan ~]# vim /etc/hosts
10.10.10.129  www.apache1.com
10.10.10.129  www.apache2.com
10.10.10.129  www.apache3.com

[root@yan ~]# ping www.apache1.com
PING www.apache1.com (10.10.10.129) 56(84) bytes of data.


 

[root@yan ~]# ping www.apache2.com
PING www.apache2.com (10.10.10.129) 56(84) bytes of data.
(2),创建虚拟主机配置文件
[root@yan ~]# vim /etc/httpd/conf.d/vhost.conf 

<VirtualHost 10.10.10.10:80>
DocumentRoot /apache/www/apache1
ServerName www.apache1.com
<Directory "/apache/www/apache1">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>



<VirtualHost 10.10.10.10:80>
DocumentRoot /apache/www/apache2
ServerName www.apache2.com
<Directory "/apache/www/apache2">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>



<VirtualHost 10.10.10.10:80>
DocumentRoot /apache/www/apache3
ServerName www.apache3.com
<Directory "/apache/www/apache3">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>


重启服务:
[root@yan ~]# systemctl restart httpd

(3),Linux 系统,内部访问测试

[root@localhost conf.d]# curl www.apache1.com
hello world
[root@localhost conf.d]# curl www.apache2.com
hello world
[root@localhost conf.d]# curl www.apache3.com
hello world

(4), 浏览器访问测试

www.apache1.com

Apache压力测试

ab 命令检测:

ab命令是 Apache 自带的压力测试工具。

ab 非常实用,它不仅可以对 Apache 服务器进行网站访问压力测试,也可以对其它类型的服务器进行压力测试。 比如 Nginx、Tomcat、IIS 等。

ab 命令原理:

ab 的原理:ab 命令会创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。
它的测试目标是基于 URL 的,因此,它既可以用来测试 apache 的负载压力,
也可以测试 nginx、lighthttp、tomcat、IIS 等其它 Web 服务器的压力。

ab 命令对发出负载的计算机要求很低,它既不会占用很高 CPU,也不会占用很多内存。
但却会给目标服务器造成巨大的负载,其原理类似 CC 攻击。
自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。

安装ab 命令:

yum install http-tools

 使用ab 命令:

选项:
-n:在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c:一次产生的请求个数。默认是一次一个。
-t:测试所进行的最大秒数。其内部隐含值是 - n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

案例:
ab -c 100 -n 200 http://192.168.197.138/
上面的语句表示有 100 个并发访问,每秒总共有 200 个请求,在此情况下进行压力测试。
注意,URL地址后面,一定要跟上/ (代表下一级目录)
ab 性能指标:
在进行性能测试过程中有几个指标比较重要:
1、吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是 reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关
b、不同的并发用户数下,吞吐率一般是不同的

计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second=Complete requests/Time taken for tests
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。



2、并发连接数(The number of concurrent connections)
并发连接数,指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。



3、并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
在 HTTP/1.1 下,IE7 支持两个并发连接,IE8 支持 6 个并发连接,FireFox3 支持 4 个并发连接,所以相应的,我们的并发用户数就得除以这个基数。



4、用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间 /(总请求数 / 并发用户数),即:
Time per request=Time taken for tests/(Complete requests/Concurrency Level)



5、服务器平均请求等待时间(Time per request:across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即:
Time taken for/testsComplete requests
可以看到,它是吞吐率的倒数。

同时,它也等于用户平均请求等待时间 / 并发用户数,即
Time per request/Concurrency Level

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值