telnet ip port # 如果没有修改的话,则是80端口
GET /xxx1 http/1.1 # xxx1为/var/www/html下的一个文本文件
host:xxxx # xxxx为客户端的IP地址
上述命令完毕之后需要按shift+enter键才能返回结果
<IfModule prefork/worker.c> ... </IfModule>
MPM的参数配置,具体的各个参数含义如下:
StartServers 启动httpd服务会开启几个进程
MinSpareServers 进程队列中最小处于预备状态的进程数
MaxSpareServers 进程队列中最大处于预备状态的进程数
ServerLimit 服务器开启处理http请求的最大进程数
MaxClients 可以同时连接到httpd服务的最大连接数量,和ServerLimit的数值一样,默认最大值为256
MaxRequestsPerChild 每个子进程处理http请求的最大数量,超过该值会释放子进程,0表示无限制
下图所示为prefork处理模式下的进程的状态,可以让多个终端利用telnet命令来连接服务端并保持连接,测试进程数量的变化:
修改/etc/sysconfig/httpd文件,再来看看worker模式下的进程/线程状态
但是4个子进程*25个线程=100个线程,这样就会超过75个线程的限制,因此会出现下图所示的情况,刚开启httpd就有一个进程被杀死。不过手速要快,不然看不到这种情况。
LoadModule xxx.so 模块的路径 表示启动httpd服务时加载的模块
httpd -l # 查看加载的静态模块
httpd -M # 查看加载的静态和动态模块
例如关于认证的auth_basic_module模块,修改之前httpd -M可以看到该模块加载成功,但是把他注释掉之后,再利用httpd -M可以看到实时的卸载。
Include 可以读入的配置文件,/etc/httpd/conf.d/*.conf之所以可以充当配置文件的原因
User apache / Group apache 处理http请求的用户和用户组都为Apache
小tips:可以利用httpd -t 或者service httpd configtest 来检测配置文件的语法错误,检测通过则会显示Syntax OK的标志,但是只能检测文件的语法错误,并不能保证服务能够正常的运行。
五、多样化设置目录的显示内容
ServerName 指定服务器的域名
刚安装Apache启动的时候,会在start部分停留好久,之后会报两个错误,但是不影响服务的正产启动,这种情况就是ServerName没有指定,导致DNS解释失败,因此我们需要在ServerName指令后添加主机名:port,然后就不会有上诉的两个错误
ServerAdmin 管理员的邮箱服务器,错误信息都会发送至该服务器
UseCanonicalName 建议设置为Off,如果为On,则httpd只认定ServerName
5.1 设置全局站点首页