linux apache配置

本文由ybfq01230贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 APACHE 姜英杰 APACHE Web服务又称环球信息网WWW(World Wide Web)服务,是Internet上最热门的服务之一。Web 服务是一种交互式图形界面的Internet服务,具有强 大的信息连接功能,将信息通过 Internet 传递到全 球每个角落!Web服务器通常使用HTTP通讯协 议进行网络通讯,用户发出一个HTTP请求, 这个请求被发送到服务器上(通常是80端 口),服务器根据用户的请求响应相应的页 面,把这些信息发送回客户端,客户端接到 这些信息后,在显示到浏览器上,用户就可 以浏览到申请的页面内容了。 APACHE 目前的 WWW 服务器主要分为两大阵营——UnixLike上面的Apach与Windows上面的 IIS 。Apache是 Apache组织开发的自由软件,它也是目前世界上应 用最广泛的服务器软件,据统计,超过65%的网站 都使用Apache作为它的页面服务器,比所有其他的 Web服务器加起来的和还要多 。IIS是另一种应用较 广泛的web服务器,大约有15%的网站使用。就性 价比而言,当然是 Linux 上面的 Apache 最好了! 目前很多动态网站都是以 Linux+Apache+MySQL+PHP架设而成的,简称为 LAMP。 APACHE Apache 的特性: 几乎可以运行在所有的计算机平台上 支持最新的 HTTP/1.1 协议 支持虚拟主机 支持 HTTP 认证 APACHE APACHE体系结构:APACHE采用预派 生技术,主进程是httpd,它会派生出许 多子进程来监控客户的连接请求,而不 是每当有一个新的输入请求时才产生出 一个新进程,这样能提高用户的连接速 度,当子进程超出一个锋值时httpd主进 程会杀死一些子进程。 APACHE HTTP (HyperText Transfer Protocol):超文本传 输协议,是目前 WWW 传递数据的主流协议!网 站上的网页,则需要符合 HyperText Markup Language (HTML) 的语法! URL:统一资源定位器 格式:协议://目标主机地址[:port]/目录资源 一个URL就是指向Web上的某些数据的一个指 针,它可以是一个Web文件,或是一个E-mail地 址。如:http://www.163.com/index.html, http是协议部分,www.163.com是主机部分, index.html是文件部分。 APACHE 协议: http、ftp、news等! http协议是使用主 机的 http port (一般为 80),ftp 协议是使用 主机的 ftp port (一般为 21),我们使用的 80 与 21 是主机所提供的服务!即使用 http 与 ftp 连上同一部计算机,所取得的信息并不一定一 样,因为服务不同!一个是 http 一个是 ftp 怎 么会相同。 那么 WWW 的数据是如何传递的呢? APACHE 当我们在浏览器的网址栏输入网址之后: Client 端经过 DNS 解析得到 WWW 主机的 IP ,会发出一个数据包,以 http 协议联接 WWW 主机,通知 WWW 主机要以 http 的方法 来取得数据; WWW 主机收到数据包后,根据 Client 端的 要求,提供相关的讯息来响应,大部分情况下用 http 的协议传送使用 HTML 语法的网页数据到 Client 端的浏览器; 最后 Client 端的浏览器将 HTML 的语法解 析后,显示网页内容。 APACHE Apache 三种工作方式: 1. 预派生 2. 工作者 3. 独立子进程 APACHE 目前 Apache 已经出到了 2.0.X版,可以去官方 网站www.apache.org下载APACHE软件当前最 高版本 APACHE的安装: #tar jxvf httpd-2.0.54.tar.bz2 –C /usr/local/src #cd /usr/local/src/httpd-2.0.54:进入解压的目录 #./configure --enable-mods-shared=all:编译,参 数含义是安装所有的模块 #make:把源码程序编译成可执行的二进制程序 #make install:把编译生成的二进制程序放到相 应的地方,如/bin、/sbin里 APACHE APACHE会默认安装到/usr/local/apache2目录下 执行程序路径:/usr/local/apache2/bin 配置文件路径: /usr/local/apache2/conf/httpd.conf apache控制文件的路径 /usr/local/apache2/bin/apachectl 启动或停止http服务: /usr/local/apache2/bin/apachectl start|stop|restart 主页文件所在路径: /usr/local/apache2/htdocs APACHE APACHE指令:分为核心指令、附加指令、容器指令 核心指令:全局环境设置,端口等信息 附加指令:容器指令内的指令,配置每个模块时就是 在容器上配置 容器指令:只能在所包含的容器定义范围下应用,包 括:、、 例如: order allow,deny Allow from all //所有主机都可以访问上面的目录 Deny from 192.168.1 //不允许这个网段的主机访问上面目录 APACHE httpd.conf是apache的配置文件 核心指令主要字段含义: ServerRoot:Apache 软件根目录!也就是安 装路径,下面有很多目录的路径是相对于这 个路径的! Listen 80:服务器的监听端口,如果要更改 WWW 的端口,可在这里修改,例如 8080 , 修改后在client如果想访问此web页面需要输 入的URL为http://主机名/IP:8080 DocumentRoot “/usr/local/apache2/htdocs”:设 置根文档路径,即默认网页文件存放的位置 APACHE UserDir public_html:定义用户家目录下的个 人主页根目录 例:我的家目录是 /home/test ,那么test主页的 根目录就是 /home/test/public_html DirectoryIndex index.html:定义缺省主页 当输入 http://192.168.0.66 时,那么 Apache 将 会去搜寻该目录底下的文件名(即设置默认显 示的网页文件),想显示的网页文件叫什么名 字,这里就要定义什么名字,如index.html AccessFileName .htaccess:指定保护目录配置 文件的名称 APACHE Options FollwSymLinks:允许符号链接跟随, 访问不在本目录下的文件 --格式:ln –s sfile(源文件) test(目标文件) Options Indexes:如果没有缺省主页时显示缺 省主页所在目录下的文件列表,也就是说如果 在主页目录或一个自定义的目录底下找不到 index.html或其他自定义的主页时,就显示整 个目录下的文件名称!很危险吧!所以,尽量 不要在主页目录下包含 Indexes 这个项目啦! AllowOverride None/All:禁止/允许读 取.htaccess文件。默认为None,如果想启动网 页认证功能,要设为All。 APACHE 附加指令主要字段含义: Order allow,deny:设置权限,一些IP不可以访问, 设一种检查顺序, allow,deny 中间是以 “,” 隔开的 --如果要允许大部分,拒绝小部分,可设置成: order allow,deny allow from all deny from 192.168.1.100 deny from www.haha.com --如果要拒绝大部分,允许小部分,可设置成: order deny,allow deny from all allow from 192.168.1.100 allow from www.haha.com APACHE KeepAlive Off:不使用保持连接的功能,即客户 一次请求连接只能响应一个文件。建议用户将此 参数的值设置为on,即允许使用保持连接的功 能。 MaxKeepAliveRequests 100:定义持续性的连接 中,每一次连接可以进行的HTTP请求的最大请求 数,即最多允许连接的数目!不限制可设为 0(零 为无限制 )。 KeepAliveTimeout 15:同一个连接的 Client 下次 的要求没有在 15 秒内送出,该连接会被视为断 线,即如果服务器在完成一次连接,但客户端在 完成连接后就一直没再次请求连接,则过多少秒 后服务器自动断开这个连接。 APACHE MinSpareServers 5:最少的空闲子进程数目 MaxSpareServers 20:最多的空闲子进程数目 Apache一般都用创建子进程来响应一个请求,如果 每次连接都创建一个子进程那么WEB SERVER的反 应会变得很慢。因此可以在MinSpareServers和 MaxSpareServers上来定义Apache每次启动的时按照 MinSpareServers来启动最小的空的子进程数目。这 样就可以摆脱系统反应过慢的问题。但是也不能没 有最高子进程的设置。不然将会占用CPU和系统的 大量资源最后会将系统拖垮。 StartServers 8:开始创立的子进程数 APACHE Timeout 300:如果客户端在超过多少秒还没 有请求给服务器,服务器就自动断开这个连接 (断线处理)! MaxClients 150:最大客户端连接数,定义最 多允许有多少客户端同时(并发)连接到WEB SERVER上来,默认为150,可以设小一点, 因为设置太大很耗系统资源, 太小则无法让 很多人连上来! 建立个人主页 在用户家目录下,如:cd /home/test #mkdir public_html #chmod 755 public_html #chmod 755 /home/test 在 public_html目录下建立 index.html 文件 要想进入test用户的个人主页要在IE的网址中 输入: http://你的网站名称或IP/~test/ 建立个人主页 怎么需要多加一个毛毛虫的符号“ ~ ”呢!真 烦,可不可以只使用: http://你的网站名称/test 当然没问题啦! #vi /usr/local/apache2/conf/httpd.conf 添加 Alias /test “/home/test/public_html” #/usr/local/apache2/bin/apachectl restart 再试试看吧! 在文本下访问网页的命令: #lynx www.163.com 密码保护目录设置 当访问一些网站的某些资源时,浏览器 弹出一个对话框,要求输入用户名和密 码来获取对资源的访问。这就是用户认 证的一种技术。用户认证是保护网络系 统资源的第一道防线 。 基本的用户认证技术是“用户名+密码” 下面采用Apache自带的htpasswd功能实 现文本文件存储用户密码。 密码保护目录设置 这种认证方式的基本思想是:Apache 启动认 证功能后,即启用AllowOverride功能,就可 以在需要限制访问的目录下建立一个名 为.htaccess 的文件,指定认证的配置命令, 则Apache就会在每一个目录中查找.htaccess 文件。当用户第一次访问该目录的文件时,浏 览器会显示一个对话框,要求输入用户名和密 码,进行用户身份的确认。若是合法用户,则 显示所访问的页面内容,此后访问该目录的每 个页面,浏览器自动送出用户名和密码,不用 再输入了,直到关闭浏览器为止。 密码保护目录设置 #mkdir –p /home/test/public_html/private:建立要 保护的目录private #vi index.html:在此目录中建立网页文件 #cd /home/test/public_html/private #htpasswd –c .htpasswd test:增加一个帐号 -c:当后面的 .htpasswd 这个密码文件不存在时, 就建立该文件,建立第二个帐号不用-c选项 例:1.新建一个档案,并建立 test 这个 ID htpasswd -c .htpasswd test 2.已经存在密码文件了,要新增使用者账号 htpasswd .htpasswd qqq -m:修改用户密码 密码保护目录设置 #cd /home/test/public_html/private #vi .htaccess,文件内容如下: AuthName “private passwd” //对加密目录的 解释,显示在窗口上面的提示字符 AuthType Basic //身份验证时的编码方式 AuthuserFile /home/test/public_html/private/.htpasswd //密码文件存放的地方,一定是绝对路径 Require valid-user //允许许.htpasswd文件里的 用户能访问网页目录 密码保护目录设置 在配置文件httpd.conf开启认证功能 在最后添加: AllowOverride All 重启Apache服务器 在URL输入http://IP/test/private/ 练习 为用户做一个个人主页,只有haha用户 能访问该主页。 虚拟主机 虚拟主机是指在同一台服务器实现多个 Web站点 (比如:www.163.com和 thiz.linux.com 同时运行在一台主机 上),对于小企业来说不需要有专门的 Web服务器来搭建自己的Web站点 虚拟主机分为: -基于IP的虚拟主机 -基于名字的虚拟主机 虚拟主机 基于IP的虚拟主机:每个虚拟主机都有 自己的IP地址 基于名字的虚拟主机:每个虚拟主机IP 地址相同,主机名不同 虚拟主机指令属于容器指 令 基于IP的虚拟主机 基于IP的虚拟主机必须拥有不同的IP地址。 可以用物理网络链接来实现这一需求,或 者使用在一个网卡上绑定多个IP地址 (虚 拟网卡),也就是说要配置一个基于IP的虚 拟主机需要一个具备多IP地址的服务器, 再配置DNS 服务器,给每个IP地址以不同的 域名。 一个虚拟主机的所有配置指令都包含在 段中了,每个虚拟主机一 段。 基于IP的虚拟主机 配置过程: 1、配置IP地址 2、修改主配置文件配置虚拟主机 3、建立虚拟主机网页文件及目录 4、启动httpd服务 基于IP的虚拟主机 临时增加IP地址 #ifconfig eth0:0 192.168.1.2 永久增加IP地址 #cd /etc/sysconfig/network-scripts #cp ifcfg-eth0 ifcfg-eth0:0 #vi ifcfg-eth0:0 #service network restart 基于IP的虚拟主机 编辑httpd.conf文件,增加如下内容: ServerName www.163.com DocumentRoot /www/163 ServerName www.126.com DocumentRoot /www/126 其中,ServerName:服务器名称 DocumentRoot:虚拟主机网页根目录 基于IP的虚拟主机 建立相应的网页文件 #mkdir –p /www/163 #mkdri –p /www/126 在163和126里分别建立网页文件 index.html 基于IP的虚拟主机 注意:www.163.com与www.126.com必须 在DNS里解析 还要将本机IP与主机名的对应关系写到/etc/hosts表中,否则apache可能无法正常 启动 在客户端测试的时候别忘了指定DNS服 务器的IP 基于名字的虚拟主机 浏览器和服务器通信时,服务器能够跟踪浏览 器请求的是哪个主机名字。因此可以利用这个 新特性,使用更轻松的方式设定虚拟主机。这 种方式不需要额外的IP地址,但需要新版本的 浏览器支持。这种方式已经成为建立虚拟主机 的标准方式。要建立非IP基础的虚拟主机,多 个域名是不可少的配置,因为每个域名就对应 一个要服务的虚拟主机,因此需要更改DNS服 务器的配置。 基于名字的虚拟主机 当apache在读取httpd.conf过程中遇到 NameVirtuaHost指令时,它为指定的IP 地址建立一个虚拟主机表。 当apache分析httpd.conf时,每当它遇 见一个指令,该指令指定 的IP地址与前面分配给虚拟主机驻留的 IP地址相同时,它都在虚拟主机列表上 为该IP地址添加虚拟主机。 基于名字的虚拟主机 当 client 找 到 一 个 虚 拟 主 机 , 其 ServerName指令与输入请求的Host头部 匹配时,apache就使用该虚拟主机容器 中的配置来响应该请求,简单说,就是 用多个名字指向同一个IP地址。 基于名字的虚拟主机 配置基于名字的虚拟主机,修改httpd.conf NameVirtualHost 192.168.2.1 ServerName www.qq.com DocumentRoot /www/qq ServerName www.yahoo.com DocumentRoot /www/yahoo 练习 1、配置基于名字的虚拟主机 www.google.com www.baidu.com 2、配置基于IP的虚拟主机 www.sohu.com www.sina.com

原文地址:https://www.cnblogs.com/huangfuqiang/p/7742289.html