1、 基本配置
(1) 软件的安装 yum –y install http*
(2) 启动http服务 service httpd restart
(3) 相关的配置文件
<1>存放网页的位置/var/www/html
<2>/etc/httpd/***** 存放服务器的配置文件
核心配置文件:/etc/httpd/conf/httpd.conf
/etc/httpd/logs --- 存放日志
/etc/httpd/modules --- 存放相应的可以动态加载的模块
(4) 核心配置文件详解
注意:在修改Linux的配置文件前,请将其做好备份。
① ServerRoot “/etc/httpd” --表示配置文件存放的位置
(说明:在对应的目录后不能加”/”)
②TimeOut 120 -- 表示用于设置超时
③Listen 80 ---用于设置侦听端口,可自定义
④Include conf.d/*.conf --设置包含文件,主要是一些其他附加服务的配置文件(Squid、SSL、CGI)
⑤ServerAdmin root@localhost -- 表示web服务器管理员的电子邮件地址
⑥ServerName www.example.com:80 --表示设置本机服务器的网络地址,主要应用是:当服务器有多个名称时,可以指定连接哪个主机名称。
⑦DocumentRoot “/var/www/html” ---存放网页文件
⑧容器
<Directory />
Order allow,deny
Allow from all
</Directory>
⑨ 设置普通用户的个人主页(个人站点)
<1>注释以下这一行
#userdir disable
<2>设置每个用户默认的存放网页的位置
UserDir public_html
注意:每个用户创建对应的目录后,要注意将用户的家目录添加“x”权限位,允许其它用户访问。同时存放网页的目录以及目录中的文件,要注意其SELinux的context值。
执行以下指令实现默认修改:
restorecon –R –v public_html
⑩DirectoryIndex index.html index.html.var
--设置默认的索引页名称
11、设置默认的字符集
AddDefaultCharset gb2312
12、设置别名
alias /icons/ “/var/www/icons/”
二、虚拟主机
虚拟主机可以基于端口、IP、name
基于名称的虚拟主机:(前提:DNS中对相应的名称已经可以进行解析)
station254.example.com ---- 192.168.24.254
www254.example.com ---- 192.168.24.254
配置过程:
1、 编辑httpd.conf文件
① 启动基于名称的虚拟主机功能
#NameVirtualHost *:80 #默认,可将其修改为以下形式
NameVirtualHost 192.168.24.254:80
#192.168.24.254是表示需要侦听的IP地址
② 针对某个虚拟主机的具体配置
#<VirtualHost *:80> ##表示,对应虚拟主机侦听的地址和端口
# ServerAdmin webmaster@dummy-host.example.com
##设置服务器管理员的电子邮箱,该选项可省略
# DocumentRoot /www/docs/dummy-host.example.com
##设置该虚拟主机的网页存放的位置,该选项是必须的
# ServerName dummy-host.example.com
##设置该虚拟主机的对应的名称,该选项是必须的,
##同时名称应该可以通过对应的DNS进行解析
# ErrorLog logs/dummy-host.example.com-error_log
##设置错误日志存放的位置和相应的文件名称,可省
# CustomLog logs/dummy-host.example.com-access_log common
##设置访问日志存放的位置和相应的文件名称,可省
#</VirtualHost>
#注意:虚拟主机的配置中,如果对应选项省略,则默认使用主配置文件中
#(/etc/httpd/conf/httpd.conf)的全局设定
举例:设置station254.example.com为虚拟主机的名称,存放网页的位置为:
/var/www/html/station254
*******************************************
<virtualhost 192.168.24.254:80>
DocumentRoot /var/www/html/station254
ServerName station254.example.com
</Virtualhost>
**************************************
三、SSL
1、安装相应的功能模块(即:让apache支持SSL)
yum -y install mod_ssl
3、 主要配置文件:
/etc/httpd/conf.d/ssl.conf
4、 常见配置
①Listen 443 #设置侦听端口,可以自行设定
②SSLCertificateFile /etc/pki/tls/station254/station254.crt
#设置公钥存放的位置
④ SSLCertificateKeyFile /etc/pki/tls/station254/station254.key
#设置私钥存放的位置
5、 公钥与私钥的创建
① 创建私钥
openssl genrsa –out station240.key 1024
说明:
genrsa 生成的密钥的格式
-out :指定生成的密钥的文件名称
station240.key :自定义的名称,但是扩展名要求采用默认的“.key”
1024:使用1024bit加密
② 创建公钥
openssl req –new –x509 –key station240.key –out station240.crt
说明:req –new –x509:表示采用x.509加密方式
-key:指定生成公钥时,需要从哪个私钥产生。
-out :指定生成的密钥的文件名称
station240.crt:自定义的名称,但是扩展名要求采用默认的“.crt”
注意:默认存放公钥与私钥的路径:/etc/pki/tls
同时还应该注意如果要存放到其它位置,应将对应的密钥文件和目录的SELinux的content值更改为cert_t
手动修改content值:chcon –t cert_t /some/path
四、网页加密(授权)
基于主机、用户的验证
1、 定义“认证文件”
全局设置中的“AccessFileName”选项。
系统默认定义为“.htaccess”
在系统中,会有以下的一段定义:其作用是指定不允许所有客户访问以“.ht”开头的所有文件。
<Files ~ "^/.ht">
Order allow,deny
Deny from all
</Files>
说明:Order语句:
Order allow,deny----先执行允许部分,然后执行拒绝部分,默认是拒绝所有,因此,我们在这里应该明确定义允许访问的规则。
Order deny,allow----先执行拒绝部分,然后执行允许部分,默认是允许所有,因此,我们在这里应该明确定义被拒绝访问的规则。
2、 对需要进行用户验证的目录进行设定
例:将/var/www/html/host1设定为需要用户验证才能访问。
<Directory “/var/www/html/host1”>
#以下语句是对应设置,让该功能生效
Allowoverride authconfig
</directory>
3、 在指定的/var/www/html/host1目录中添加“.htaccess”文件
cd /var/www/html/host1
touch .htaccess
4、 在对应的“.htaccess”文件中添加如下内容:
authname “test-auth” # 设置对话框的标题
authtype basic #设置(密码)验证的类型
authuserfile /var/www/html/host1/.htpasswd
#指定用户级别的密码文件
#authgroupfile /var/www/html/host1/.htgroup
#指定组级别的密码文件
#<limit GET>
#require group staff #设置允许执行“GET”访问的
#组名称为staff
#</limit>
#<limit PUT POST>
#require user bob jane #设置允许执行“PUT POST”
#操作的用户为bob 和jane
#</limit >
require user zengdesheng s204
#设置允许访问的用户为zengdesheng和s204
#The end of this file
5、 创建用户对应的密码文件
① 创建密码文件:(主要是针对第一次执行的时候)
cd /var/www/html/host1
htpasswd –cm .htpasswd 对应用户名称
#说明:-c选项是指创建 -m选项是指modify(修改)
② 如果需要为某个用户修改密码则执行下列操作
cd /var/www/html/host1
htpasswd –m .htpasswd 对应用户名称