Apache服务器的配置文件是(Apache服务器的配置文件所在路径是)

WWW服务器

搭建web服务器的软件很多。

Apache在全球使用量是最多的

LAMP L=linux,A= apache,M=mysql,P=PHP或者perl等;

还有一具LAMMP;

Apache的主配置文件路径:/etc/httpd/conf/httpd.conf

# /etc/httpd/conf/httpd.conf

它会显示系统的版本号(当访问某个不存在网页时,同时会显示一些服务器的信息)

当下面的配置没有指明路径的话,它会使用这个路径

它的进程ID的路径(完整路径/etc/httpd/run/)

超时时间(客户端和服务器连接时)

当传递第一个文件时,要建立三次握手的连接,当第一个传完之后,再传第二个文件的时候又要建立一次三次握手的连接,就是说每传完一次文件都会断开,再传下一个文件时候又要重新建立连接,这里建议改成on

只有当keepAlive 为on的请况下,这里起作用,也就是说传递100个文件之后才会断开。就是说在这100个文件之间是保持连接的。

就是说当keepAlive为on的情况下,这里起作用,也就是传递完一个文件之后,再传下一个,之间是不会断开的,但是这个之间只要超过15秒,就会断开。

apache 2.0版本以后,它支持了一个叫做MPM的东西(多处理模块),在apache中常用的模块有两种:

第一种叫做:prefork 默认运行的模块

第二种叫做:worker

prefork

Startservers 8 : 当apache在开启的时候,默认会开启8个进程;

MinSpareServers 5 : 当有很多个客户端连接过来的时候,我要保留的最小备份进程为5;

MaxSpareservers20 : 当有很多个客户端连接过来的时候,我要保留的最大备份进程为20;

也就是说当有一百个客户端连接过来,这里保留的最少有5个httpd进程在运行,最多只能有20进程在运行,也就是说当有100个客户端连接过来时,最少会有105个至120个进程在运行,其中5至20为备份用的(空余进程),

ServerLimit 256 : 用来限制客户端的连接数量的

MaxClients 256 : 最大允许256个客户端可以同时连接我的服务器(这里256可以说是并发量)

它所监听的端口为80 (可通过这里改端口号)

当运行模块这些文件的时候,它会把conf.d/这个目录下的所有conf文件全部包含在它的配置文件里面去

进程在运行的时候,进程的所有者和所属组都是apache(可提高安全性)

管理员的邮箱,就是说站点出现问题的时候,系统会把内容发送到这个管理员的邮箱(root@localhost)

设置站点名和端口

文档主目录(网页目录)

这里是设置写上一些规则来管理对/var/www/html/这个目录中的某个目录访问权限,<Directory />这个后面的根指的/etc/httpd/这个目录,而并不是我们系统的根,具体的详细紧跟如下:

找到下面的<Directory “/var/www/html”> </Directory>找到这两行,然后把这两行中间的注释全部去掉,只保留下面这一行,如下:

# option FileInfo AuthConfig Limit

最后保留的如下:

下面看一下这里的每个选项是什么意思,如下:

当我在访问一个文件夹的时候,如果这个文件夹里没有我要访问的网页的话(默认访问的网页为index.html),系统会把这个网页里面的内容全部显示出来。注意:这样就会带来一定的安全隐患,因为这个网页中的所有目录都给列出来了吗,那我们可以把Indexes 这个给去掉,然后客户端再访问的时候,就不会显示这个文件夹里面内容了,会显示Forbidden,就不会显示里面的内容了。FollowSymLinks是可以做虚拟目录的(通过软连接来实现),就是说FollowSymLinks选项是可以做通过软连接来做虚拟目录的,如果把这个给删除掉,那就不可以通过软件连接来做虚拟目录了

访问控制列表;这里的顺序很重要,先写allow还是先写deny顺序很重要,写在后面的将会成为默认的,因为deny写在后面的,它就默认的,具体的allow和deny怎么来实现访问控制,它是通过下面的allow from 和 deny from后面的值来决定的,如果allow from 和 deny from后面的值相冲突,那么是默认的生效。

访问控制列表;

Deny from 这里的Deny from默认没有写

如果我要是想给某个目录做一个限制的话,可以这样做,把上面八号再复制一份,如下:!!!!!!!

比如说我想对根下面的XX做一个限制,如下:

这里就写了xx目录“/var/www/html/xx”,然后下面就是对这个目录做的一个限制,只允许本地可以访问。

个人主页,默认主机是关闭的,我们访问不了,如果要是打开的话,可以把这行给注释掉或者把后面disabled给改成enabled都可以。然后把下面的注释给去掉就可以了

如果个人主目录这行给开启的话,那么这一行必须也行开启,就是把前面的注释给去掉就可以了

这两个是用来设置个人主页用的。

你可以这样来操作,在用户的家目录下建一个文件夹,名字叫做public_html,当然这个名字也是可以改的,但是这里的名字一定要和配置文件里面的名字要一样,然后在这个用户的家目录中创建一个index.html文件,具体的访问方法如下: http://192.168.80.2/~server这样式就可以访问到server用户的个人主页了,如果访问不了,要从以下几个方面去考虑原因,1、就是public_html这个目录的权限;2、就是要考虑一个SElinux的问题,布尔值等问题;

主页,如果你在访问某个网页的时候没有指明主页,它默认的主页是index.html

主要用于我们对一个文件做控制(验证)用的,比如,网页上有某个文件夹内容只想让个别的人可以访问,就可以使用这里,比如你要是只想让个别人访问服务器上的xx这个文件(192.168.80.2/xx)时,输入密码,你必须在xx这个文件夹中创建一个 .htaccess文件出来,如下:

# vim /var/www/html/xx/.htaccess

AuthName xxxxxxxxxx 验证的名字(会出现在浏览器上)

AuthType basic 验证的类型
AuthUserFile /var/www/html/.htpasswd 绝对路径。因为要用密码来验证,必须指定它的一个密码文件才可以(这个路径可以随便写,必须是绝对路径。只要能验证密码就可以了)

Require user server 允许哪个用户登录

现在我们到/var/www/html/目录下面去创建这个文件 .htpasswd ,如下:

# htpasswd –cm .htpasswd server 创建.htpasswd文件给server加密

“c”创建 “m”是MD5加密

然后找到AllowOverride 这行,把后面none改成 authconfig,保存退出重启服务。即可

脚本的别名。

意思:当你在写脚本的时候,如果说在你所输入的地址栏里,如果出现了Cgi-bin的话,它实际上是运行的是/var/www/cgi-bin/这个目录里面的内容。

Cgi的全称:公共网络接口,他实现的就是一些动态语言的功能。

QQ的外部邮箱就是使用perl来完成的。登录QQ邮箱的时候,地址栏里就有一个cgi-bin

# curl –head 192.168.80.2 !!!!

这条命令的意思是:查看192.168.80.2这台web 服务器是用什么平台给搭建起来的

我们现在进入/var/www/cgi-bin这个目录,然后用perl在里面写一个脚本,如下:

然后把curl –head 192.168.80.2 结果里面的Content-Type: text/html这行给复制到下面的脚本中,具体如下:

# vim test.pl

#!/usr/bin/perl

Print “Content-Type: text/html\n\n”;

$now=localtime();

Print $now,”\n”;

然后给这个文件加上一个X权限,运行一下会显示本地时间。

在客户端可以这样访问,在地址栏里输入http://192.168.80.2/cgi-bin/test.pl

在网页里会显示系统时间,每刷新,时间就会动。

上面的脚本我们也可以使用shell来写,如下:

# vim xx.sh

#!/bin/bash

Echo “Content-Type:text/html”

Echo

Now=`date`

Echo $now

同样客户端在地址栏里输入http://192.168.80.2/cgi-bin/xx.sh也会动态显示时间。

可以在下面加一条别名,如下:

这里有一个语法要注意: /aa/ “/aa/” 前面的/aa/后面的 / 很重要,一定要加,就是说,前面写了 / ,双引号里面的后面也要加 /,要有都有,要无都无。

这样,客户端在地址栏里输入http://192.168.80.2/aa这时,客户端访问的就是根下面的aa文件夹里面的内容了

这里设置了系统的一些编码,当你使用apache来搭建web 服务的时候,当你去下载一些软件来搭建WEB服务的时候,只能下载UTF-8版本的,而不能下载GDK版本的,如果你下载GDK版本的,你装起来,会发现编码全是乱码

apache所支持的一些语言。

语言的优先级

语言所支持的编码是UTF-8

apache来做代理用的

这部分是用来做虚拟主机的。

大家想一个问题,有时候我们是需要做一个网站的,当我们做个人网站的时候,你不可能个人用一个服务器的,比如你在家里面做,通过花生壳做一个映射也行,但是网速很慢,如果你去买一个服务器托管,这个费用又很贵,一般不愿意花这个钱,一般我们都会到互联网上去买一些空间出来。是这样,如果一个人他有一台服务器,托管起来,硬盘空间又很大,然后他又会通过磁盘配额划分一个个的磁盘空间出来,然后卖给别人。那即然你是卖空间的话,就意味着在同一台服务器上有很多个站点,也就是说多个站点共用一个IP地址,这种就叫做基于主机名的虚拟主机。在同一台主机上跑了很多个站点,这些站点就叫做虚拟主机。如果说这些站点使用一个IP地址的话,就叫基于主机名的虚拟主机;如果这些主机使用不同的IP地址的话,就叫基于IP地址的虚拟主机,这就说明了,在同一台服务器上可以搭建很多个虚拟主机。

1、 基于主机名的虚拟主机

2、 基于IP地址的虚拟主机

3、 基于端口的虚拟主机

前两者我们用的还是很多的,基于主机名的虚拟主机和基于IP地址的虚拟主机;

一、下面我们来看看基于主机名的虚拟主机:

首先把这行注释给去掉

这一行必须给去掉注释

然后把下面的注释全部去掉,得到如下:

管理员邮箱

虚拟主机目录

日志相关

日志相关

这些中间有些条目我们可以给删除掉的,最后保留的条目如下:

然后我们把四行给复制几下分别把baidu.com、google.com给写进去,但是要记住,把原来站点也要写去,否则原来的站点无法访问,如下:

<VirtualHost *:80>

DocumentRoot /baidu

ServerName www.baidu.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /google

ServerName www.google.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/html

ServerName www.rhce.cc

</VirtualHost>

截图如下:

然后,把baidu和google两个文件夹给创建出来,再改一下这两个文件夹的上下文,具体如下:

# mkdir /baidu

# mkdir /google

# echo baidu > /baidu/index.html

# echo google > /google/index.html

# chcon –R –reference=/var/www/html/ /baidu /google 更改这两个文件夹的上下文(重要

二、基于IP地址的虚拟主机

如果说我有很多个IP地址,可以给每个不同的站点分配不同的IP地址,就叫做基于IP地址的虚拟主机。具体做法如下:

给机器多配几个IP地址:

# ip addr add 10.10.10.10/8 dev eth0 label eth0:1

# ip addr add 10.10.10.11/8 dev eth0 label eth0:2

然后查看一下eth0接口的IP地址列表:

# ip addr show eth0

然后给这两个网卡配置一个文件,如下:

# cd /etc/sysconfig/network-script/

# cp ifcfg-eth0 ifcfg-eth0:1

把里面的MAC地址行给删除掉,把设备名改成eth0:1,可以把不需要的行给删除掉;

eth0:2同样。

这样我们配置的IP地址就永久性的生效了。

# ip addr show eth0 查看IP信息

然后再去更改DNS信息,baidu区域 google区域

把baidu 的IP改成10..10.10.10;把google的IP改成10.10.10.11

然后重启named服务。

下面开始做基于IP地址的虚拟主机,如下:

把这行给注释掉

然后把下面的几行里的*改成IP地址,如下:

<VirtualHost 10.10.10.10:80>

DocumentRoot /baidu

ServerName www.baidu.com

</VirtualHost>

<VirtualHost 10.10.10.11:80>

DocumentRoot /google

ServerName www.google.com

</VirtualHost>

<VirtualHost 10.10.10.3:80>

DocumentRoot /var/www/html

ServerName www.rhce.cc

</VirtualHost>

如何实现https连接

首先我们要安装一个包,如下:

# yum install mod_ssl -y 就是装上SSL的模块

装完之后,会发现在/etc/httpd/conf.d/目录下面多了一个ssl.conf文件

下面我们来编辑这个文件,如下:

# vim /etc/httpd/conf.d/ssl.conf

使用的端口

虚拟主机,也就是说刚刚建立的三个虚拟主机也会受到影响443

它是SSL的一个引擎,如把这个on改成off,则所有站点都无法使用https来访问了。

这是一个证书文件,也是CA给颁发的

这是一个密钥

创建证书,步骤如下:

首先进入这个目录“/etc/pki/tls/certs/”,进入这个目录,里面有一个makefile文件,然后开始创建密钥,如下

# make aa.crt 创建好证书之后,再执行下面步骤,如下:

# cp aa.* /etc/httpd/conf/ (将aa.crt和aa.key全拷贝到/etc/httpd/conf/目录中)

然后把下面两行后面路径改一下,如下:

改后:

然后保存,退出,重启服务

# service httpd restart

客户端第一次通过https连接到服务器时,会有下面提示,如下:

这时我们可以点下面的“我已充分了解可能的风险”,然后在里面有一个“添加例外”,再点击获取证书,确认安全例外,即可。

此时服务器有三个站点www.rhce.cc、www.sina.com、www.google.com、这三个站点,现在我只想让www.rhce.cc使有https,其它两个站点使用http访问,做法如下:

第一:把/etc/httpd/conf.d/ssl.conf文件中的SSLEngine 后面的值改成off,这样,所有的站点都无法使用https

第二:再去编辑/etc/httpd/conf/httpd.conf文件,在www.rhce.cc虚拟主机这部分添加如下内容:(红色部分是添加的部分,另外把80端口改成 443端口)

<VirtualHost 10.10.10.3:443>

DocumentRoot /var/www/html

ServerName www.rhce.cc

SSLEngine on

SSLCertificateFile /etc/httpd/conf/aa.crt

SSLCertificateKeyFile /etc/httpd/conf/aa.key

</VirtualHost>

第三:重启httpd服务

如何监控web服务器的日志

下面讲两个工具: Webalizer awstats

工具一: webalizer

Webalizer工具是系统自带的工具,我们安装一下:

# yum install webalizer -y 安装webalizer工具

装完之后,在/etc/httpd/conf.d/目录下面会多一个webalizer.conf文件,这就说明和apache绑定在一起了

下面看看webalizer.conf这个文件,如下:

# vim /etc/httpd/conf.d/webalizer.conf 此文件是设置权限

这个文件里设置的是,这里Alias /usage /var/www/usage 意思是,访问www.rhce.cc/ usage时就是访问/var/www/usage这个目录,下面就的几行就是对这个文件所做的一些权限,哪些人可以访问/var/www/usage这个目录,哪些人不可以访问;

# vim /etc/webalizer.conf 配置文件

因为它是分析日志的工具,所以这里标的是它读取的是哪个日志文件

分析完日志产生的报表所放的位置

使用webalizer工具,只要在命令行里输入 # webalizer就可以了

运行过之后 ,此时就生成了一个报表,报表位于 /var/www/usage/目录中。

下面把httpd服务重启一下,service httpd restart

然后到客户端,在地址栏里输入 www.rhce.cc/usage,此时访问的就是那个报表

工具二: awstats 此工具可到 pkgs.org去下载

安装: # yum localinstall awstats-7.0-2.el6.noarch.rpm

这个程序是用perl语言来写出来的

装完之后在/etc/httpd/conf.d/会生成一个文件awstats.conf

打开来看一下:# vim /etc/httpd/conf.d/awstats.conf

这里和webalizer一样,客户端访问方法:www.rhce.cc/awstatscss

装好之后,它的配置文件是放在 /etc/awstats目录下面的

当它运行的时候,它会读取/etc/awstats/目录中的awstats.conf这个文件,但是这个目录里中又没有这个文件,我们需要生成这个文件,如下:

# cp awstats.server.rhce.cc.conf awstats.conf

下面我们来运行一下,如下:

首先分析日志的脚本放在 /usr/share/awstats/wwwroot/cgi-bin/,在这个目录中

Awstats.pl是用perl语言写出来,它就是用来分析日志的

下面就来运行一下这个程序,如下:

# ./awstats.pl -h 查看帮助

运行

# ./awstats.pl -config=www -update -output > index.html

将运行的结果输出为index.html ,这个index.html就是对日志分析的结果

下面我们来打开index.html文件看一下

最下面一行做了一个别名。 最后重启一下httpd服务

然后在客户端打开浏览器,在地址栏里输入: www.rhce.cc/awstats 就可以监视日志

对apache做测试,我们用 ab命令还是比较多的。

# ab -n 1000 -c 10 www.rhce.cc/index.html

这条命令的意思是发送1000个连接,同时发送10次,对后面的这个网页。(也叫压力测试

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.yiheng8.com/154121.html