当前位置:文档之家› apache配置(linux及windows中的设置)以及虚拟主机的设置

apache配置(linux及windows中的设置)以及虚拟主机的设置

课程大纲
Apache介绍
Web服务器的工作原理
Apache在Linux下的安装

Apache介绍
----------
网站只有发布以后,用户才能通过Web浏览器访问到该网站中的信息资源。Web服务器软件就是用于发布网站的服务器,而Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttp服务器(National Center for Supercomputin Applications,简称NCSA),经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器。因为它是自由软件,所以不断有人来为它的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并且可以作为代理服务器使用。

Web服务器的工作原理
-------------------

Apache在Linux下安装
-------------------

Apache的目录结构与配置指令
--------------------------
/usr/local/apache2/

bin - 是Apache执行文件目录
apachectl htpasswd

cgi-bin - 预设给一些cgi网页程序存放的目录

error - 默认错误应答文件目录

htdocs - 默认Web文档根目录(document root目录)

icons - 提供Apache预设的一些小图标

logs - Apache日志文件存放目录
access_log 记录访问信息,如访问的时间、来访问的客户端IP等
error_log 记录对Web服务器一些错误的访问,如客户访问一个不存在的目录
这两个文件需要设置文件大小。一般定制50M

man - 帮助手册所在目录

modules - 动态加载模块所在目录

Apache配置文件所在目录
源码包Apache默认配置文件的保存位置:
/usr/local/apache2/etc/httpd.conf

安装原代码包可以自己指定的目录
/etc/httpd/ 主配置文件httpd.conf所在目录
/etc/httpd/extra 扩展模块配置文件所在目录 多个辅助配置文件*.conf所在目录

httpd-autoindex.conf - 配置目录列表的辅助配置文件
httpd-languages.conf - 配置语言支持
httpd-ssl.conf - 配置ssl模块的辅助配置文件
httpd-dav.conf
httpd-manual.conf - 设置Apache文档访问
httpd-userdir.conf - 配置用户主目录的辅助配置文件
httpd-default.conf - 与Apache自身相关的辅助配置文件
httpd-mpm.conf - 多路处理模块,比如允许多少人访问,允许多少个进程等等
httpd-vhosts.conf - 设置虚拟主机
httpd-info.conf - 配置服务器信息和状态显示
httpd-multilang-errordoc.conf - 配置多语言错误应答的辅助配置文件


配置文件的语法
--------------
# - 表示注释
文件的每一行包含一个指令
\表示续行,注意:与下一行之间不能有其它字符,包括空隔符和空行

指令名 参数
Listen 80
ServerRoot "/usr/local/apache2"

配置文件中的指令不区分大小写
指令的参数严格区

分大小写
空白行或指令前的空白都将被忽略(用来调整格式)

目录分隔符只能使用/

检查配置错误:
-------------
apache安装目录下
/usr/local/apache2/bin/apachectl configtest
/usr/local/apache2/bin/apachectl -t

修改了配置文件之后需要重新启动apache服务
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

Apache服务器的参数设置
----------------------
1.在主配置文件中的全局参数
2.附加配置文件中的全局参数

/usr/local/apache2/bin/apachectl -l 查看不用动态加载的模块有哪些

ServerRoot "/usr/local/apache2"
用于指定Apache服务器的配置文件及日志文件存放的路径,服务器的基础目录,所有配置都是相对于此目录的(除了配置文件在安装时指定在其它位置的情况除外)。

Listen 80 监听端口
Listen 192.168.1.12:80 监听指定地址的端口
Listen 192.168.1.12:1000 https 监听指定地址下的80端口的协议,使用非标准端口的时候使用

加载模块:
LoadModule 模块名称 模块文件路径全名
例:
LocaModule php5_Module modules/libphp5.so

Apache默认将已经编译的DSO(Dynamic shared Object) 模块存放于Apache安装目录子目录module中
LoadModule deflate_module modules/mod_deflate.so
服务器在输出内容前先压缩,以节约带宽
LoadModule expires_module modules/mod_expires.so
服务器允许通过配置文件控制http协议的过期时间、缓存控制等等
LoadModule rewrite_module modules/mod_rewrite.so
服务器需要一定的规则实时重写URL请求


User and Group:
User 用户名 daemon
Group 组名 daemon

ServerAdmin you@https://www.doczj.com/doc/c43859283.html,
设置为Web管理员的地址,当服务器运行错误的时候,就会把这个邮箱告诉用户,用户可能就会把错误发送给管理员,管理就可以去修正这个错误

DocumentRoot:
"/usr/local/apache2/htdocs"
相当于是我们的www目录,可以更改

ServerName:
ServerName https://www.doczj.com/doc/c43859283.html,:80
服务器用于辨识自己的主机名和端口号的,主要是用于创建重定向的URL

DirectoryIndex:
index.php index.html
访问时网站时,默认显示的网页

extra目录下配置文件的参数:
httpd-defalut.conf文件:
Timeout 300 应答时超时时间
KeepAlive On 保持持久连接
MaxKeepAliveRequests 100 当起用上面这个属性的时候,限制每个链接的请求数。
KeepAliveTimeout 5

httpd-mpm.conf 多路功能模块:

StartServers 5 启动时建立的子进程数
MinSpareServers 5 空闲子进程的最小数
MaxSpareServers 10 空闲子进程最大数
MaxClients 150 在同一时间允许的最大访问量
MaxRequestsPerChild 0 每个子进程在生存期内允许最大的请求数,设置为零表示子进程永远不会结束,可以防止一些偶然的

内在泄漏无限的进行,从而耗尽内存,还可以给进程一个有限的寿命,在负载较轻的时候,减少活动的数量。

在做性能处理的时候,用户链接的一些进程和子进程数


Apache服务器中使用配置段(容器)
------------------------------
Apache中常用的容器指令
文件系统和网络空间容器
通配和正则表达式
.htaccess文件和访问权限
设置路径别名
访问控制

配置段(容器)
指定目录的访问权限
指定文件的访问权限
指定封闭的URL
指定虚拟主机

















用于网络空间中的特定部分

https://www.doczj.com/doc/c43859283.html,/private



.htaccess 分布式配置文件

在/usr/local/apache2/htdocs这个目录下新建一个目录,然后在新建的文件中创建.htaccess文件
在httpd.conf中的指令都可以写入.htaccess文件中
要使用这个文件需要在主配置文件中进行相应的修改:
AccessFileName

AllowOverride None 禁用.htaccess文件


实例:设置别名
/var/www/html/index.html
1.在主配置文件中来实现
vi /usr/local/apache/etc/conf/httpd.conf

Alias /abc/ "/var/www/html/"

Options Indexes FollowSymlinks 允许有文件列表和符号链接
AllowOverride None 不启用.htaccess文件
Order allow,deny 先允许再拒绝
Allow from all 允许所有人访问


2.在.htaccess文件中配置
1.先在主配置文件中写上
AccessFileName .htaccess

2.

AllowOverride All 启用.htaccess文件


3.创建/var/www/html/.htaccess文件中写入权限
Optiions Index
Order allow,deny
Allow from all


访问控制
--------
1.建立基于用户的访问控制
Apache可以针对不同的目录或文件设定不同的口令文件,实现基于用户的访问控制


AuthName:
AuthName auth-domain
AuthName指令对当前定义的认证区域进行命名,该名称会出现在浏览器客户端的用户认证对话框中,以标识用户被认证的区域。如认证区域名称中包含空格需用""括起来
AuthName需与AuthType、Require、AuthUserFile一同使用。

AuthType
AuthType Basic
AuthType指令用于设置身份认证时传送密码的编码方式。设置为Basic时利用uuencode编码方式传送密码
AuthType需与AuthName、Require(user、group)、AuthUserFile、AuthGroupFile一同使用

Require
Require指令用于设定可进行身份验证的用户
Require user 用户名 [用户名] ......
设置指定用户

名的用户可通过身份难访问区域
Require group 级名 [组名] ......
设置指定组内的用户可通过身份验证访问区域
Require valid-user
设置所有合法用户可通过身份验证访问区域


AuthUserFile
AuthUserFile file-path
AuthUserFile指令用于设置验证用户身份的密码文件,文件文件名需设置绝对路径:AuthUserFile /usr/local/apache2/conf/.htpasswd
密码文件是用htpasswd命令创建的。


htpasswd命令
用于创建密码文件和设置用户密码
htpasswd -c filename username 创建密码文件并添加指定用户
-c 表示创建文件
htpasswd -c .htpasswd user1 创建.htpasswd文件,并添加用户user1
htpasswd .htpasswd user2 在文件.htpasswd中添加用户user2


AuthGroupFile
AuthGroupFile 组文件路径
AuthGroupFile指令用于设置提供用户验证的组文件。需与Require group指令一同使用。
指定的组文件为文本文件,每行定义一个组,格式如下:
组名:用户名1 用户名2
组名后面是属于该组的用户列表,中间用:分割;用户列表中用户名与用户名之间 用空格分割。


Apache的认证配置指令
AuthName语法:
AuthName 领域名称 (定义受保护领域的名称)
AuthType语法:
AuthType Basic或Digest (定义使用认证的方式)
AuthGroupFile语法:
AuthGroupFile 文件名 (指定认证组文件位置)
AuthUserFile语法:
AuthUserFile 文件名 (指定认证口令文件位置)


在主配置文件中认证和授权举例
#/usr/local/apachew/bin/htpasswd -c .htpasswd username 创建密码文件
#vi /usr/local/apache2/conf/httpd.conf 修改主配置文件
指定目录路径
Options Indexes FollowSymLinks 允许文件目录索引和符号链接
AllowOverride None 不使用.htaccess文件
AuthType Basic 指定使用基本认证方式
AuthName "test" 指定认证领域全称
AuthUserFile /usr/local/apache2/.htpasswd 指定认证口令文件存放位置
require valid-user 授权给认证口令文件中的所有用户
Order allow,deny
Allow from all




设置虚拟主机
------------
1.设置基于IP地址的虚拟主机
需要在同一台主机上绑定多个IP,在每个IP上建立一个虚拟主机,由于IP地址缺乏,此种方法不常用。
2.设置基于主机名的虚拟主机
所有的虚拟主机都使用同一个IP地址,通过不同的域名来标识不同的虚拟主机


#ifconfig eth0:1 192.168.58.129
#ifconfig eth0:2 192.168.58.130
#ifconfig eth0:3 192.168.58.131

#vi /etc/named.conf






相关主题
文本预览
相关文档 最新文档