apache(服务器软件)

apache基础

apache:www.apache.org --->主页中的project项目标题中提供了apache组织发布的各种平台软件。
apache:是取自“a patchy server”的读音,意思是充满补丁的服务器。
发布了很多开源的应用程序。如大数据库的平台软件hadoop、zookeeper等。

软件包名称:httpd
服务端口:80/tcp 443/tcp
查apache的配置文件:rpm -qc httpd
配置文件: /etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.d/*.conf 子配置文件
/etc/httpd/conf.d/welcome.conf 默认配置文件
数据目录:/var/www/html .html

练习:安装并启动httpd软件。
rpm -q httpd  httpd-manual
yum  -y  install  httpd   httpd-manual
systemctl restart httpd && systemctl enable  httpd
lsof -i:80 或 netstat  -atunlp |grep  :80

练习:安装命令行界面的网页浏览器软件,访问网站。
yum  -y install curl   elinks
curl  127.0.0.1  看到的网站的html源代码
elinks 127.0.0.1  看到网页内容,按q键退出浏览器软件

练习:创建一个index.html的主页。访问网站。
data  > /var/www/html/index.html
free  >> /var/www/html/index.html
lsblk >> /var/www/html/index.html

curl 127.0.0.1 或elinks 127.0.0.1

URl:统一资源标识,定位了一切网上的资源。列子 www.qf.com/index.html
URL:统一资源定位器。列:http://www.baidu.com/xinwen/1.html
www. 万维网
www 主机名
qf.com 域名

客户端
图形化界面:firefox   浏览器
命令: elinks  links
elinks 192.168.1.250

#echo  qf.com  > /var/www/html/index.html

当服务器没有welcome.conf和*.html文件时,web server会显示、/var/www/html这个目录中的目录结构
*//apache的主配置文件:
 vim  /etc/httpd/conf/httpd.conf

 httpd.conf配置文件的组成:
 global全局设置:
 mlodules模块设置:
 VirtualHost虚拟主机设置:
 Directory目录设置(控制访问权限-基于IP、用户认证):
 File文件控制访问控制:
 .....

31 ServerRoot "/etc/httpd" 服务器的根目录(即apache软件的根目录)
41 #Listen 12.34.56.78:80
42 Listen 80 启用80端口的监听
56 Include conf.modules.d/*.conf 包含的子配置文件,此目录是存放apache的模块程序
66 User apache 程序的执行者,用lsof -i :80 或 ps aux | grep apache可查
67 Group apache 程序的执行组,用top -u apache -->按f键-->方向键选group,并空格-->Esc键
86 ServerAdmin root@localhost 网站服务器管理员的邮箱

102 <Directory /> 根目录访问权限设置
103 AllowOverride none
104 Require all denied 要求全部拒绝,即拒绝访问/根目录下的任何文件
105 </Directory>

119 DocumentRoot "/var/www/html" 文档根目录,即默认的网站主页目录
124 <Directory "/var/www"> 对/var/www目录访问权限设置
125 AllowOverride None
126 # Allow open access:
127 Require all granted 需要所有授权,即允许任何人访问
128 </Directory>

131 <Directory "/var/www/html">
144 Options Indexes FollowSymLinks
151 AllowOverride None
156 Require all granted
157 </Directory>

163 <IfModule dir_module> 设置dir_module模块。If是Interface接口的缩写
164 DirectoryIndex index.html index.php index.jsp 指定目录的索引(即主页)文件
165 </IfModule>

171 <Files ".ht*"> 文件访问设置
172 Require all denied
173 </Files>

182 ErrorLog "logs/error_log"
189 LogLevel warn

191 <IfModule log_config_module> 设置log_config_module日志配置模块
196 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"% {User-Agent}i\"" combined
197 LogFormat "%h %l %u %t \"%r\" %>s %b" common
198
199 <IfModule logio_module>
201 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \ "%{User-Agent}i\" %I %O" combinedio
202 </IfModule>

217 CustomLog "logs/access_log" combined
218 </IfModule>

220 <IfModule alias_module> 设置alias_module别名模块
231 # Example:
232 # Alias /webpath /full/filesystem/path 定义/full/.../path路径的别名为/webpath
247 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
248
249 </IfModule>

255 <Directory "/var/www/cgi-bin">
256 AllowOverride None
257 Options None
258 Require all granted
259 </Directory>
260
261 <IfModule mime_module>
266 TypesConfig /etc/mime.types
277 #AddEncoding x-compress .Z
278 #AddEncoding x-gzip .gz .tgz
283 AddType application/x-compress .Z
284 AddType application/x-gzip .gz .tgz
305 AddType text/html .shtml
306 AddOutputFilter INCLUDES .shtml
307 </IfModule>

316 AddDefaultCharset UTF-8 默认的网站字符编码为UTF-8(支持中文)
317
318 <IfModule mime_magic_module>
324 MIMEMagicFile conf/magic
325 </IfModule>

348 EnableSendfile on
353 IncludeOptional conf.d/*.conf

apache有两种运行模式(进程和线程)

稳 prefork model 基于进程(公司常用) 即一个apache进程启动一个线程来响应客户的请求
快 worker model 基于线程(公司少用) 即一个apache进程启动多个线程来响应客户的请求

通俗理解:将进程理解成“超市”,将线程理解成超市中的“收银台”。

基于进程:由主进程创建子进程,每一个进程只有一个线程,内存是不可以共享,系统开销大,但是一个线程坏掉了不会影响其他线程

基于线程:一个进程中会产生多个线程,内存中的某个区域是可以共享的,创建线程数度快,开销小,但是一个线程出现问题时,其他线程都死掉。[以武侠小说中的分身术来理解,即发分身术招式的是进程(本尊),招式中分身是线程]

集群环境:一般都会使用进程模式,不需要某一台主机单独承担大量的访问

httpd模式切换:
centos 7的操作:
cat -n /etc/sysconfig/httpd 请看第10行内容
10 # /etc/httpd/conf.modules.d/00-mpm.conf.

vim /etc/httpd/conf.modules.d/00-mpm.conf
6 LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
12 #LoadModule mpm_worker_module modules/mod_mpm_worker.so
18 #LoadModule mpm_event_module modules/mod_mpm_event.so
说明:apache默认是采用进程模式来运行的,即以上的第6行代码。如需使用多线程模式运行,需要将第6行注释掉并且将第12行启用。然后重启httpd服务,再用httpd -V 查apache的运行模式信息。输出结果的部分内容如下:
Server MPM: worker(线程模式)
threaded: yes (fixed thread count)
forked: yes (variable process count)

---
centos 6的操作(httpd模式切换):
vim /etc/sysconfig/httpd //切换成线程模式
HTTPD=/usr/sbin/httpd.worker
/etc/init.d/httpd restart (centos 6的操作) 或 systemctl restart httpd (centos 7的操作)

<IfModule prefork.c> 进程模块
StartServers 8 初始建立的进程数(1个父进程,8个工作进程)
MinSpareServers 5 最小空闲的进程数
MaxSpareServers 20 最大空闲的进程数
ServerLimit 256 服务器最大并发连接限制(默认256)
MaxClients 256 服务器最大并发访问量
MaxRequestsPerChild 4000 每个子进程在其生命周期内允许响应的最大请求数,达到进程会被杀死,如果为0则用不结束,一个程序结束后
</IfModule>

httpd线程查询
[root@node11 ~]# ps -ef | grep httpd

apache虚拟主机

apache虚拟主机功能:在一台apache网站服务器发布多个网站站点。
网站虚拟主机三种技术:
1.基于ip地址 每个网站有一个ip地址
2.基于端口 所有网站仅用一个ip,端口不一样
3.基于主机名(域名) 所有网站仅用一个ip,但是主机名称不一样

最常用的是基于主机名,基于ip地址不常用,因为申请ip需要资金

配置apache实现虚拟主机
基于ip的虚拟主机:
思路: 1.给服务器的网卡设置多个ip地址。
             2.创建网站主页目录及index.html主页文件。
             3.在httpd服务器软件的/etc/httpd/conf.d目录中创建虚拟主机的配置文件,给每个ip地址绑定一个网站。
             4.访问测试:访问不同的ip地址,得到不同网站页面。

实施参考:
1.给服务器的网卡设置多个ip地址。(临时设置多个ip,重启network服务是时ip会丢失)
ifconfig ens33:1 192.168.11.21/24 up
ifconfig ens33:2 192.168.11.22/24 up
ifconfig ens33:3 192.168.11.23/24 up
ip a 或 ifconfig

2.创建网站主页目录及index.html主页文件。
mkdir -pv /baidu/{www,map,music}
echo www.baidu.com >/baidu/www/index.html
echo map .baidu.com > /baidu/map/index.html
echo music.baidu.com > /baidu/music/index.html

3.在httpd服务器软件的/etc/httpd/conf.d目录中创建虚拟主机的配置文件,给每个ip地址绑定一个网站。
cd /etc/httpd/conf.d(子配置文件)
ls
rpm -ql httpd | grep vhosts查httpd软件的所有文件名列表,但匹配vhosts关键词的文件
cat /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
tail /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf > /etc/httpd/conf.d/baidu.conf(创建baidu.conf配置文件)
-----基于ip的虚拟主机
vim /etc/httpd/conf.d/baidu.conf 修改后的内容如下

 <VirtualHost 192.168.11.21:80>  指定虚拟主机的ip号和端口号
ServerAdmin 123@qq.com   服务器管理员邮箱
DocumentRoot "/baidu/www/"  网站主页根目录
ServerName www.baidu.com  网站的域名
ErrorLog "/var/log/www.baidu.com-error_log"
CustomLog "/var/log/httpd/www.baidu.com-access_log" common

</VirtualHost>

<Directory "/baidu/www"> 目录设置 在/etc/httd/conf/httpd.conf可以找到源代码
AllowOverride None

Allow open access:

Require all granted  需要所有授权,即允许任何人访问

</Directory>

<VirtualHost 192.168.11.22:80>
ServerAdmin 123@qq.com
DocumentRoot "/baidu/map/"
ServerName www.map.com
ErrorLog "/var/log/www.map.com-error_log"
CustomLog "/var/log/httpd/www.map.com-access_log" common
</VirtualHost>

<Directory "/baidu/map">
AllowOverride None

Allow open access:

Require all granted

</Directory>

4.访问测试:访问不同的ip地址,得到不同的页面。
systemctl restart httpd
curl 192.168.11.21 结果是www.baidu.com
curl 192.168.11.22 结果是map.baidu.com

----基于端口的虚拟主机
vim /etc/httpd/conf.d/baidu.conf修改内容如下

 Listen 81   启用81端口的监听

Listen 82 启用82端口的监听
<VirtualHost 192.168.11.21:81> ip和下面的ip相同 但端口不同
ServerAdmin 123@qq.com
DocumentRoot "/baidu/www/"
ServerName www.baidu.com
ErrorLog "/var/log/www.baidu.com-error_log"
CustomLog "/var/log/httpd/www.baidu.com-access_log" common
</VirtualHost>

<Directory "/baidu/www">
AllowOverride None

Allow open access:

Require all granted

</Directory>

<VirtualHost 192.168.11.21:82>
ServerAdmin 123@qq.com
DocumentRoot "/baidu/map/"
ServerName www.map.com
ErrorLog "/var/log/www.map.com-error_log"
CustomLog "/var/log/httpd/www.map.com-access_log" common
</VirtualHost>

<Directory "/baidu/map">
AllowOverride None

Allow open access:

Require all granted

</Directory>

访问测试:访问相同ip的不同端口,得到不同网页界面
systemctl restart httpd
curl 192.168.11.21:81 输出结果是www.baidu.com
curl 192.168.11.21:82 输出结果是map.baidu.com



基于域名的虚拟主机:

Listen 81
Listen 82
<VirtualHost 192.168.11.21:80>
ServerAdmin 123@qq.com
DocumentRoot "/baidu/www/"
ServerName www.baidu.com
ErrorLog "/var/log/www.baidu.com-error_log"
CustomLog "/var/log/httpd/www.baidu.com-access_log" common
</VirtualHost>

<Directory "/baidu/www">
AllowOverride None

Allow open access:

Require all granted

</Directory>

<VirtualHost 192.168.11.21:80>
ServerAdmin 123@qq.com
DocumentRoot "/baidu/map/"
ServerName www.map.com
ErrorLog "/var/log/www.map.com-error_log"
CustomLog "/var/log/httpd/www.map.com-access_log" common
</VirtualHost>

<Directory "/baidu/map">
AllowOverride None

Allow open access:

Require all granted

</Directory>

并改掉 vim /etc/hosts
加入这一行192.168.11.21 www.baidu.com map.baidu.com
systemctl restart httpd
curl www.baidu.com 输出结果为www.baidu.com
curl map.baidu.com 输出结果为map.baidu.com

原文地址:http://blog.51cto.com/14181888/2350738

时间: 2024-10-09 09:20:07

apache(服务器软件)的相关文章

Apache服务器的下载与安装

关于PHP的运行环境搭载,网上文章繁杂,遂自己整理一篇! PHP的运行必然少不了服务器的支持,何为服务器?通俗讲就是在一台计算机上,安装个服务器软件,这台计算机便可以称之为服务器,服务器软件和计算机本身的操作系统是两码事,计算机自身的操作系统可以为linux.Unix.Windows或者MacOS,同时服务软件也可以是Apache(PHP).Tomcat(java/jsp).IIS(asp). PHP主要使用的是Apache服务器,主流的站点搭建组合为LAMP(Linux.Apache.MySQ

Apache服务器最新版下载、安装及配置(win版)

windows 7 64位 Apache 2.4.10 服务器软件 (这个下载过程稍后提到) Apache的下载: 1 登录http://httpd.apache.org/download.cgi 这个地址,找到2.4.10,如下图位置: 2 进入如下界面后,选择第一项ApacheHaus,这是个第三方下载平台,在它的网站下载独立的Apache会是一个压缩包 另外四个中,第二个也是独立的Apache下载地址,另外三个是集成开发环境. 小编选的第一个. 3 在新的界面中,会发现VC9和VC11字样

开发基于Apache服务器上的CGI程序

在上一节中成功的搭建了Apache服务器,这节将介绍使用C语言开发能在Apache服务器上运行的CGI程序 安装好Apache服务器后,在C:\Program Files\Apache Software Foundation\Apache2.2下有一些用于开发Apache服务器的文件 文件介绍: bin:Apache服务器软件所在地 cgi-bi:保存C语言写的程序 conf:保存服务器设置的信息 error:网站发送错误的处理 htdcocs:保存HTML程序 icons:保存开发Apache

php-基础知识-apache服务器

一.支持php的服务器有:iis.apache.lighted(德国制造).nginx(俄罗斯制造,功能强大[反向代理.服务器集群.流媒体服务器........].轻量) 二.今天主要分享apache的相关知识 1.官网(http://httpd.apache.org)下载 2.安装流程:百度一下吧,很久之前搭建的了,没有截图,强调下:ApacheRuntime--必须安装 测试安装是否成功:浏览器访问http://localhost/ 当看到显示有 "It works"表示成功 3.

安装apache服务器、php和mysql数据库(转)

安装64位php开发环境 最近听说PHP5.4速度很快,所以想建立一个本地环境测试下.我打算用本地windows xp sp3下安装PHP5.4.8.Apache2.4.3和Mysql5.5.28. 首先去下载PHP.Apache和Mysql的最新版本. PHP5.4.8版本下载地址:http://windows.php.net/download/ Mysql5.5.28版本下载地址:http://www.mysql.com/downloads/mysql/ Apache2.4.3版本下载地址:

配置与管理Apache服务器

配置与管理Apache服务器 姓名:马雪敏 专业:网络工程 一.Apache服务的安装.启动.停止 1.Apache相关软件 httpd软件是Apache服务器的程序软件包(RHEL 6) httpd-2.2.15-29.el6_4.i686 2. 安装Apache服务 2.1可以先使用下面的命令检查系统是否安装了Apache服务 在这里系统已经安装了Apache服务; 2.2如果系统没有安装Apache服务,可以使用以下命令进行安装: (1)挂载光盘 mount   /dev/cdrom   

如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法

一.实验环境 centos6.5+mysql5.5.32+php5.3.27 软件:DedeCMS-V5.7-GBK-SP1 本实验是使用lamp环境搭建,但mysql数据库与之分离,本实验成功的关键在于防火墙及其selinux关闭的前提下实现. 二.实验步骤 1)下载产品,并解压至www目录内 wget -O /home/chen/tools/  http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-GBK-SP1.tar.gz

开源服务器软件

Java缓存服务器 jmemcached http://www.oschina.net/p/jmemcached jmemcached 是一个Java版的 memcached 缓存服务器,基本上跟 memcached 是兼容的.jmemcached 是使用 Apache MINA 作为无堵塞的网络IO操作,但之后使用Netty作为网络异步实现机制. Web服务器 TornadoTornado web server 是使用Python编写出來的一个极轻量级.高可伸缩性和非阻塞IO的Web服务器软件

Apache服务器的配置与管理

Apache服务器的建立 一.项目设计 利用Apache服务建立普通Web站点.基于主机和用户认证的访问控制. 二.项目准备 安装有企业服务器版Linux的PC计算机一台.测试用计算机一台(Windows XP).并且两台计算机都在连入局域网.该环境也可以用虚拟机实现.规划好各台主机的IP地址. 三.安装过程 Apache相关软件 httpd软件包 httpd-manual软件包 1.检测是否安装httpd 2.开启httpd服务 3.查看80端口是否被监听 4.查看ip地址,并测试服务器是否能