Apache服务器配置与管理
目录
Apache服务器基本信息
IP:所有未分配的IP
端口:80
主目录:/var/www/html
默认主页文件
注:Apache默认的接听连接端口号是80
Apache基本配置文件是/etc/httpd/conf/httpd.conf
index.html /etc/httpd/ 配置文件 /usr/bin/ 可执行命令 /usr/sbin/ 可执行脚本 /usr/share/doc Apaceh文档 /var/www/ 服务器提供客户端可访 问目录
配置公司Web站点
[root@maxin html]# rpm -qc httpd
/etc/httpd/conf.d/welcome.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/logrotate.d/httpd /etc/sysconfig/httpd
打开配置文件 vi /etc/httpd/conf/httpd.conf
# # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/var/www/html"
建立自己的主页:
[root@maxin html]# vi /etc/httpd/conf/httpd.conf [root@maxin html]# cd /var/www/html [root@maxin html]# ls [root@maxin html]# vi index.html
配置文件中:
- serverroot:设置web站点根目录的位置
- directoryindex:设置站点的默认主页
配置用户个人主页
在服务器上,拥有用户账号的每个用户,都能架设自己的独立web站点。
管理员可为每个用户建立public_html目录,然后用户把网页文件放在该目录下即可。
- 建立用户Tom,修改其默认主目录的权限,并在其下建立目录public_html
[root@maxin ~]# useradd tom [root@maxin ~]# passwd tom Changing password for user tom. New password: BAD PASSWORD: it does not contain enough DIFFERENT characters BAD PASSWORD: is a palindrome Retype new password: passwd: all authentication tokens updated successfully. [root@maxin ~]# chmod 711 /home/tom [root@maxin ~]# cd /home/tom [root@maxin tom]# mkdir public_html [root@maxin tom]# chown tom:tom public_html [root@maxin tom]# chcon -R -h -t httpd_sys_content_t /home/*/public_html
- 编辑httpd.conf文件,将UserDir的值设置为public_html。
cd /etc/httpd/conf mv httpd.conf httpd.conf.bak //mv用来对文件或目录重命名,或者移动文件从一个目录到另一个目录,此处为重命名 grep -v "#" httpd.conf.bak > httpd.conf
<IfModule mod_userdir.c> UserDir public_html </IfModule>
<Directory /home/*/public_html /> AllowOverride FileInfo AuthConfig Limint Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order allow,deny Deny from all </LimitExcept> </Directory>
这个Limited块的配置作用是限制,网站的访问只允许使用HTTP的GET POST OPTIONS方法,其他HTTP协议方法不允许
- 重新启动httpd服务。
[root@maxin conf]# service httpd restart
- 在/home/tom/public_html目录下保存用户的个人主页
[root@maxin conf]# cd /home/tom/public_html [root@maxin public_html]# echo "hello,i am tom" > index.html
- 在浏览器打开验证:http://10.0.0.47/~tom/
Apache服务器进阶配置
建立虚拟目录别名
使用别名访问 别名指令 Alias <别名> <"实际路径"> alias /manual "/var/www/manual“
//设置/dir/test目录的访问权限 <Directory "/dir/test "> Options Indexes </Directory>
例: vi /etc/httpd/conf/httpd.conf
Alias /temp "/var/temp" <Directory "/var/tmp"> Options Indexes AllowOverride None Order allow,deny Allow from all </Directory>
保存已添加的配置语句,然后执行:
service network restart
在/var/temp目录中创建:
[root@cloud17 ~]# mkdir /var/temp [root@cloud17 ~]# cd /var/temp [root@cloud17 temp]# ls [root@cloud17 temp]# cat > index.html <html> <p>hello world</p> </html>
URL地址重定向
重定向
当用户访问某一RUL地址时,Web服务器自动转向 另一个URL地址
语法格式: Redirect 错误响应代码 用户请求的RUL 重定向的URL 错误响应代码: 301 被请求的URL已被永久移到新的URL 302 被请求的URL被临时移到新的URL 303 被访问的页面已被替换 401 该页面不存在(该代码下的语法结构无重定
向的URL )
例如:在配置文件Section2 部分添加如下内容:
Redirect 303 /temp http://www.baidu.com
重启服务器:
service httpd restart
配置每个用户的Web站点
拥有本地用户账号的每个用户都能够架设自己单独的Web站点。
配置每个用户的Web站点,需经过下面的配置步骤
修改主配置文件启用每个用户的Web站点配置。
<IfModule mod_userdir.c>
//基于安全考虑,禁止root用户使用自己的个人站点 UserDir
//配置对每个用户Web站点目录的设置 UserDir public_html </IfModule> 修改主配置文件为每个用户的Web站点目录配置访问控制。 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> 配置每个用户的Web站点 用户在个人主目录下创建自己的Web站点需要执行的步骤 $ cd //创建目录public_html $ mkdir public_html $ cd public_html $vi index.html //创建index.html
基于主机的访问控制
访问控制的配置指令
Order:用于指定执行允许访问规则和执行拒绝访问规则的先后顺序 Deny:定义拒绝访问列表 Allow:定义允许访问列表
Order指令的两种形式
Order Allow,Deny
在执行拒绝访问规则之前先执行允许访问规则。 当没有定义拒绝访问列表和允许访问列表时,默认情况下将会拒绝所有没有明确被允许的客户。
Order Deny,Allow
在执行允许访问规则之前先执行拒绝访问规则。 默认情况下将会允许所有没有明确被拒绝的客户。
Deny和Allow
Deny和Allow的语法
Allow from <访问列表>
Deny from <访问列表>
访问列表的书写形式
All:表示所有客户。
域名:表示域内的所有客户,如jamond.net。
IP地址:可以指定完整的IP地址或部分IP地址。
网络/子网掩码:如192.168.1.0/255.255.255.255.0。
基于主机的访问控制 访问控制举例 允许来自jamond.net域的客户访问,拒绝所有其他客户访问。
Order Deny,Allow Deny from all Allow from jamond.net
允许来自jamond.net域的客户访问,但禁止主机osmond.jamond.net访问。
Order Allow,Deny Allow from jamond.net Deny from osmond. jamond.net
基于用户的认证访问控制
使用认证指令 在主配置文件的容器指令内使用 在.htaccess配置文件中使用 认证指令 AuthName AuthName <领域名称> 定义受保护领域的名称 AuthType AuthType Basic 定义使用的基本认证方式 AuthGroupFile AuthGroupFile <文件名> 指定认证组文件的位置 AuthUserFile AuthUserFile <文件名> 指定认证口令文件的位置 配置授权 当使用认证指令配置了认证之后,还需要为指定的用户或组进行授权。 为用户或组进行授权的指令是Require。 Require指令的三种使用格式: 授权给指定的一个或多个用户 Require user 用户名 [用户名] …… 授权给指定的一个或多个组 Require group 组名 [组名] …… 授权给认证口令文件中的所有用户 Require valid-user 管理认证口令文件和认证组文件 在添加第一个认证用户的同时创建认证口令文件
- htpasswd -c <认证口令文件名> < 用户名>
添加用户或修改已存在的用户的口令
- htpasswd <认证口令文件名> < 用户名>
设置完成后,认证口令文件的属主必须修改为apache
- chown apache:apache /etc/httpd/userpasswd
本章总结 Apache服务器是从NCSA httpd发展而来,支持多平台、线程、HTTP1.1协议、CGI和脚本程序、虚拟主机、Java Servlets、IPv6、DSO等功能 Apache安装分RPM安装和源代码编译安装,两种安装所生成的文件结构不同。源代码编译安装中默认支持DSO功能,可以使用configure命令配置模块安装为动态共享对象,而RPM包并没有包括该项功能 创建Apache服务器 (1)检查是否安装Apache服务器 (2)查看主配置文件中的DocumentRoot指令的值。显示结果说明/var/www/html是web站点的主目录,网页可以存储在这个目录中。 (3)执行ifconfig查看主机的IP地址(假设192.168.2.100)。 (4)启动Apache服务器。 (5)打开浏览器,输入http://192.168.2.100,或者http://127.0.0.1,或者http://localhost。可以看到Apache服务器输出的默认主页。 启动Apache服务之后的默认首页
(6)在目录/var/www/html中,使用vim文本编辑器,建立一个html文件,文件名称为index.html。 输入以下内容: <html> <head> <title>hello</title> </head> <body> hello,Apache</body> </html>
(7)在浏览器中输入http://192.168.2.100,即可看到新创建的网页。 (8)停止Apache服务器。
Apache 的性能设置
- vi /etc/httpd/conf/httpd.conf
格式如下:
[全局设置] //设置Web服务器性能参数 全局选项 ……… … … … [主服务器的设置] //设置默认站点的相关选项 主服务器的选项 … … … … … [虚拟主机] //设置虚拟主机相关选项 … … …
配置文件语法结构
配置文件:/etc/httpd/conf/httpd.conf
文件中除了注释和空行外,其他行为指令行。指令又分为类似于shell的命令和容器指令。
shell指令用于全局配置,基本语法为:
配置参数名称 参数值
例如:DocumentRoot “/var/www/html” 设置web站点的文档根目录
返回 Linux基础