“Apache服务器配置与管理”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
DocumentRoot:设置fwq主目录的路径
第17行: 第17行:
 
</nowiki>
 
</nowiki>
  
==Apache服务器的配置==
+
 
===Apache基本配置===
+
==Apache基本配置==
 
以下介绍httpd.conf文件中几个基本配置:
 
以下介绍httpd.conf文件中几个基本配置:
  
====ServerRoot:设置根目录的路径====
+
vi /etc/httpd/conf/httpd.conf
 +
 
 +
===ServerRoot:设置根目录的路径===
  
 
   Apache服务器根目录是指Apache存放配置文件和日志文件的目录,默认情况下根目录位于“/etc/httpd”。根目录下一般包含conf和logs子目录。命令如下:
 
   Apache服务器根目录是指Apache存放配置文件和日志文件的目录,默认情况下根目录位于“/etc/httpd”。根目录下一般包含conf和logs子目录。命令如下:
第27行: 第29行:
 
   ServerRoot  “/etc/httpd”
 
   ServerRoot  “/etc/httpd”
  
====Listen:设置监听IP地址及端口号====
+
===Listen:设置监听IP地址及端口号===
  
 
该参数设置web服务器监听客户端web请求的本机IP和端口号命令如下:
 
该参数设置web服务器监听客户端web请求的本机IP和端口号命令如下:
第36行: 第38行:
  
  
====ServerAdmin:设置系统管理员E-mail====  
+
===ServerAdmin:设置系统管理员E-mail===  
  
 
当客户端访问服务器发生错误时,服务器通常会向客户端返回错误提示网页,为了便于排除错误,这个网页中通常包含有系统管理员的E-mail地址。可使用ServerAdmin设置管理员的E-mail,例如:
 
当客户端访问服务器发生错误时,服务器通常会向客户端返回错误提示网页,为了便于排除错误,这个网页中通常包含有系统管理员的E-mail地址。可使用ServerAdmin设置管理员的E-mail,例如:
 
ServerAdmin      admin@sdcet.cn
 
ServerAdmin      admin@sdcet.cn
  
====ServerName:设置服务器主机名称====
+
===ServerName:设置服务器主机名称===
  
 
参数ServerName可使服务器识别自身的信息,如果服务器有域名,则该参数设为服务器域名,如果没有域名则填入服务器的IP地址。命令如下:
 
参数ServerName可使服务器识别自身的信息,如果服务器有域名,则该参数设为服务器域名,如果没有域名则填入服务器的IP地址。命令如下:
第52行: 第54行:
  
  
====DocumentRoot:设置web站点主目录的路径====
+
===DocumentRoot:设置web站点主目录的路径===
  
 
该参数指明web站点主目录的默认路径,需要发布的网页一般都放在这个目录下。为了方便管理和使用,每个web站点都有一个自己的主目录路径。例如,sdcet站点的主目录路径为:
 
该参数指明web站点主目录的默认路径,需要发布的网页一般都放在这个目录下。为了方便管理和使用,每个web站点都有一个自己的主目录路径。例如,sdcet站点的主目录路径为:
第58行: 第60行:
 
  DocumentRoot  “/var/www/sdcet”
 
  DocumentRoot  “/var/www/sdcet”
  
====DirectoryIndex:设置web站点默认主页====
+
===DirectoryIndex:设置web站点默认主页===
  
 
在一般情况下,web站点的默认主页文件名由DirectoryIndex配置参数定义,Apache的默认主页文件名为index.html,用户也可以将DirectoryIndex的参数值修改为其他文件:
 
在一般情况下,web站点的默认主页文件名由DirectoryIndex配置参数定义,Apache的默认主页文件名为index.html,用户也可以将DirectoryIndex的参数值修改为其他文件:
第64行: 第66行:
 
  DirectoryIndex  index.html  index.html.var
 
  DirectoryIndex  index.html  index.html.var
  
====AddDefaultCharset:设置默认字符集====
+
===AddDefaultCharset:设置默认字符集===
  
 
AddDefaultCharset选项定义了服务器返回给客户机的默认字符集。Apache默认字符集是UTF-8,当客户端访问中文网页时会出现乱码现象。解决的办法就是将默认字符集改为GB2312,如下例所示:
 
AddDefaultCharset选项定义了服务器返回给客户机的默认字符集。Apache默认字符集是UTF-8,当客户端访问中文网页时会出现乱码现象。解决的办法就是将默认字符集改为GB2312,如下例所示:
第70行: 第72行:
 
  AddDefaultCharset  GB2312
 
  AddDefaultCharset  GB2312
  
 +
==Apache服务器进阶配置==
 
===建立虚拟目录别名===
 
===建立虚拟目录别名===
 
使用别名访问
 
使用别名访问
第117行: 第120行:
 
                   向的URL )
 
                   向的URL )
  
 +
例如:在配置文件Section2 部分添加如下内容:
 +
 +
Redirect 303 /temp http://www.baidu.com
 +
 +
重启服务器:
 +
 +
service httpd restart
  
 
=== 配置每个用户的Web站点 ===
 
=== 配置每个用户的Web站点 ===
 
   
 
   
 
拥有本地用户账号的每个用户都能够架设自己单独的Web站点。
 
拥有本地用户账号的每个用户都能够架设自己单独的Web站点。
 +
 
配置每个用户的Web站点,需经过下面的配置步骤
 
配置每个用户的Web站点,需经过下面的配置步骤
 +
 
修改主配置文件启用每个用户的Web站点配置。
 
修改主配置文件启用每个用户的Web站点配置。
 +
 
<IfModule mod_userdir.c>  
 
<IfModule mod_userdir.c>  
 
  //基于安全考虑,禁止root用户使用自己的个人站点  
 
  //基于安全考虑,禁止root用户使用自己的个人站点  
第211行: 第224行:
 
设置完成后,认证口令文件的属主必须修改为apache  
 
设置完成后,认证口令文件的属主必须修改为apache  
 
#chown apache:apache /etc/httpd/userpasswd
 
#chown apache:apache /etc/httpd/userpasswd
 +
 
本章总结
 
本章总结
 
Apache服务器是从NCSA httpd发展而来,支持多平台、线程、HTTP1.1协议、CGI和脚本程序、虚拟主机、Java Servlets、IPv6、DSO等功能
 
Apache服务器是从NCSA httpd发展而来,支持多平台、线程、HTTP1.1协议、CGI和脚本程序、虚拟主机、Java Servlets、IPv6、DSO等功能
第236行: 第250行:
  
  
 
== Apache虚拟主机的配置 ==
 
 
虚拟主机能够实现用一个Web服务器设置多个Web站点的功能。从而实现多用户对硬件资源和网络资源的共享,大幅度降低用户建立网站的成本。
 
 
虚拟主机技术使得每一台虚拟主机都具有独立的域名和IP地址,并具有完整的Web服务器功能。各个虚拟主机之间是完全独立的,从外界来看,虚拟主机和独立主机的表现是完全一样的。
 
 
 
在配置虚拟主机时,需使用<VirtualHost>语句,该语句必须成对出现。<VirtualHost>和</VirtualHost>语句之间封装了设置虚拟主机属性的语句,大部分的配置语句都在<VirtualHost>和</VirtualHost>语句之间,与配置独立的Web服务器类似。
 
 
 
=== 配置基于IP的虚拟主机 ===
 
 
 
基于IP的虚拟主机的服务器绑定多个IP,然后通过配置Apache,把多个网站绑定在不同的IP上,用户访问服务器上不同的IP,就可看到不同的网站。
 
 
配置基于IP的虚拟主机有两种方法:一种是IP地址相同,但端口号不同;另一种是端口号相同,但IP地址不同。
 
 
 
=== 配置基于域名的虚拟主机 ===
 
 
 
基于域名的虚拟主机服务器只需有一个IP地址即可创建多台虚拟主机,所有的虚拟主机共享同一个IP地址,各虚拟主机之间通过域名进行区分。此时需要在DNS服务器中添加域名与IP地址的映射关系。
 
 
假设服务器的IP地址为192.168.18.100,要配置的虚拟主机是www.sdcet.cn和www.sdu.edu.cn,在DNS中应有www.sdcet.cn和www.sdu.edu.cn域名与IP地址192.168.18.100的映射关系。
 
 
1)配置DNS
 
 
在DNS服务器中建立两个主机地址A资源记录,将这两个记录解析到同一个IP地址上,即192.168.18.100。
 
 
2)在Apache服务器的主配置文件httpd.conf中,添加以下语句:
 
 
<nowiki> NameVirtualHost  192.168.18.100  //必须指定哪个IP地址
 
<VirtualHost  www.sdcet.cn>
 
ServerName  www. sdcet.cn:80
 
ServerAdmin  admin@sdcet.cn
 
DocumentRoot    “/var/www/web1”
 
DirectoryIndex  index.html
 
</VirtualHost>
 
<VirtualHost  www.sdu.edu.cn>
 
ServerName  www.sdu.edu.cn:80
 
ServerAdmin  admin@sdu.edu.cn
 
DocumentRoot  “/var/www/web2”
 
DirectoryIndex  index.html
 
</VirtualHost></nowiki>
 
 
 
 
(3)创建基于域名的虚拟主机时,必须先用NameVirtualHost指令指定哪个IP地址负责响应对虚拟主机的请求,然后用<VirtualHost 虚拟主机名>来指明这台虚拟主机使用哪个域名。
 
 
(4)配置服务器IP地址。
 
 
(5)重启httpd服务,即可实现基于域名的虚拟主机配置。
 
 
==Apache配置时经常用到的指令==
 
1、DocumentRoot
 
 
  默认值:DocumentRoot “/var/www/html/”
 
  设置Apache提供文件服务的目录;
 
 
2、Listen
 
 
  默认值:所有能够连接到服务器的IP地址
 
  指定如何响应除去Port指定的端口地址外的地址请求; 
 
 
3、ServerName
 
 
  设定Apache服务器的主机名称;
 
 
4、ServerRoot
 
 
  指定一个目录,这个目录中存储了Apache服务器的配置文件,默认值:ServerRoot /etc/httpd/
 
  
  

2018年7月8日 (日) 09:07的版本

Apache服务器基本信息

IP:所有未分配的IP

端口:80

主目录:/var/www/html

默认主页文件

index.html
 /etc/httpd/		配置文件
/usr/bin/		可执行命令
/usr/sbin/		可执行脚本
/usr/share/doc		Apaceh文档
/var/www/		服务器提供客户端可访 
                                       问目录


Apache基本配置

以下介绍httpd.conf文件中几个基本配置:

vi /etc/httpd/conf/httpd.conf

ServerRoot:设置根目录的路径

 Apache服务器根目录是指Apache存放配置文件和日志文件的目录,默认情况下根目录位于“/etc/httpd”。根目录下一般包含conf和logs子目录。命令如下:
  ServerRoot  “/etc/httpd”

Listen:设置监听IP地址及端口号

该参数设置web服务器监听客户端web请求的本机IP和端口号命令如下: Listen 80 Listen 192.168.18.100:8080

一般将该参数设为本服务器的某块网卡的IP地址及对应Web服务器的端口。


ServerAdmin:设置系统管理员E-mail

当客户端访问服务器发生错误时,服务器通常会向客户端返回错误提示网页,为了便于排除错误,这个网页中通常包含有系统管理员的E-mail地址。可使用ServerAdmin设置管理员的E-mail,例如: ServerAdmin admin@sdcet.cn

ServerName:设置服务器主机名称

参数ServerName可使服务器识别自身的信息,如果服务器有域名,则该参数设为服务器域名,如果没有域名则填入服务器的IP地址。命令如下:

ServerName  www.sdcet.cn:8080

或:

ServerName  192.168.18.100:8080


DocumentRoot:设置web站点主目录的路径

该参数指明web站点主目录的默认路径,需要发布的网页一般都放在这个目录下。为了方便管理和使用,每个web站点都有一个自己的主目录路径。例如,sdcet站点的主目录路径为:

DocumentRoot  “/var/www/sdcet”

DirectoryIndex:设置web站点默认主页

在一般情况下,web站点的默认主页文件名由DirectoryIndex配置参数定义,Apache的默认主页文件名为index.html,用户也可以将DirectoryIndex的参数值修改为其他文件:

DirectoryIndex  index.html  index.html.var

AddDefaultCharset:设置默认字符集

AddDefaultCharset选项定义了服务器返回给客户机的默认字符集。Apache默认字符集是UTF-8,当客户端访问中文网页时会出现乱码现象。解决的办法就是将默认字符集改为GB2312,如下例所示:

AddDefaultCharset  GB2312

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 管理认证口令文件和认证组文件 在添加第一个认证用户的同时创建认证口令文件

  1. htpasswd -c <认证口令文件名> < 用户名>

添加用户或修改已存在的用户的口令

  1. htpasswd <认证口令文件名> < 用户名>

设置完成后,认证口令文件的属主必须修改为apache

  1. 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 的性能设置

  1. vi /etc/httpd/conf/httpd.conf

格式如下:

[全局设置]                     //设置Web服务器性能参数
全局选项 ………
… …  …
[主服务器的设置]              //设置默认站点的相关选项
主服务器的选项 … …
… … …
[虚拟主机]                 //设置虚拟主机相关选项
… … …	  


配置文件语法结构

配置文件:/etc/httpd/conf/httpd.conf

文件中除了注释和空行外,其他行为指令行。指令又分为类似于shell的命令和容器指令。

shell指令用于全局配置,基本语法为:

 配置参数名称   参数值
 例如:DocumentRoot  “/var/www/html”
 设置web站点的文档根目录

返回 Linux基础