Apache HTTP Server(简称Apache或httpd)是一个开放源码的网页服务器,是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
Apache提供的web服务器的守护进程是httpd,通过http协议进行文本传输,默认使用80端口的明文传输方式,后来,为了保证数据的安全和可靠性,又添加了443的加密传输的方式;Apache提供的服务器又被称为:补丁服务器,它是一款高度模块化的软件,想要给它添加相应的功能只需添加相应的模块,让其Apache主程序加载相应的模块,不需要的模块也可以不用加载,保证了Apache的简洁,轻便,高效性,当出现大量访问一个服务器是可以使用多种复用模式,保证了服务器能快速回应客户端的请求,如MPM,端口复用技术。
特点:
开放源代码跨平台使用,支持绝大多数硬件平台,支持所有的unix系统和linux系统,支持大多数windows平台支持多种web编程语言,perl,php,python,java等模块化设计,根据所需功能去安装不同的模块运行非常稳定,支持大负载访问的web站点安全性高,及时修复已发现的漏洞1.安装apache
yum install -y httpd#启动:systemctl start httpd#状态:systemctl status httpd#查看端口:netstat -lntp | grep 80
配置文件目录:
网站根目录:/var/www/html/错误信息目录:/var/www/error/Apache日志文件:/var/log/httpd/主要执行文件: /usr/sbin/apachectl二进制执行文件: /usr/sbin/httpd主配置文件:/etc/httpd/conf/httpd.confcd /etc/httpd/#./conf/ 主配置文件./conf.d/ 子配置文件./logs/ 存储日志 ./modules/ 存储模块./run/ 存储Pid文件,存放的pid号码。是主进程号
查看配置文件:
vim /etc/httpd/conf/httpd.confServerRoot "/etc/httpd" #工作目录:服务器设置的最顶层目录Listen 80 #监听端口Include conf.modules.d/*.conf #包含conf.modules.d目录下的*.conf文件User apache #子进程的用户,有可能被人改称www账户Group apache#子进程的组ServerAdmin root@localhost # 设置管理员邮件地址##对根目录的一个权限的设置<Directory /> #网站容器开始标识 AllowOverride none #对目录设置特殊属性:none不使用.htaccess控制,all允许 Require all denied #granted 表示允许所有访问,denied 表示拒绝所有访问DocumentRoot "/var/www/html" #默认页面存放位置(目录),可更改##对/var/www/html目录的一个权限的设置<Directory "/var/www/html"> Options Indexes FollowSymLinks #找不到index.html主页时,以目录的方式呈现,并允许链接到网站根目录以外 AllowOverride None #对目录设置特殊属性:none不使用.htaccess控制,all允许 Order allow,deny #对页面的访问控制顺序后面的一项是默认选项。如allow,deny则默认是deny Allow from all #允许所有的用户,通过和上一项结合可以控制对网站的访问控制 </Directory>##默认打开的网页文件名称<IfModule dir_module> DirectoryIndex index.html</IfModule> ErrorLog "logs/error_log" #错误日志存放的位置 ServerSignature On #当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一些信息 IncludeOptional conf.d/*.conf # 包含conf.d目录下的*.conf文件
访问控制:
首先:先把默认页面移除mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.back修改配置文件:vim /etc/httpd/conf/httpd.conf1.默认允许所有主机访问<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>2.默认拒绝所有主机访问<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all denied</Directory>3.设定:拒绝少部分,允许大部分:可用于黑名单<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None <RequireALL> Require not ip 192.168.137.152 Require all granted </RequireAll></Directory>4.设定:拒绝大部分,允许少部分:可用于内部测试<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None <RequireAny> Require ip 192.168.137.152 Require all denied </RequireAny></Directory>
虚拟主机:
虚拟主机:多个网站在一台服务器上。应用于只有一台服务器但需要提供多个页面时。
三种:基于域名、基于端口、基于Ip。
1.基于域名:
ip相同,端口相同,域名不同:
错误日志:vim /var/log/httpd/error_log
1.创建子配置文件:test.confcd /etc/httpd/conf.d/vim test.conf#虚拟主机1<VirtualHost *:80> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ipDocumentRoot /alan #发布网站目录,自己定义ServerName www.alan.com #域名,可以自己定义<Directory "/alan/"> AllowOverride None #设置目录的特性 Require all granted #允许所有人访问</Directory></VirtualHost>#虚拟主机2<VirtualHost *:80> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ipDocumentRoot /tom #发布网站目录,自己定义ServerName www.tom.com #域名,可以自己定义<Directory "/tom/"> AllowOverride None #设置目录的特性 Require all granted #允许所有人访问</Directory></VirtualHost>
2.创建 /alan 目录:默认页面发布目录mkdir /alanmkdir /tom3.创建 index.html 文件,作为默认页面echo "My name is alan." >>/alan/index.htmlecho "My name is tom." >>/tom/index.html4.给权限:重启:chmod 777 /alanchmod 777 /alan/index.htmlchmod 777 /tomchmod 777 /tom/index.htmlsystemctl restart httpd5.修改本地域名解析vim /etc/hosts
6.查看:curl www.alan.com
2.基于端口
域名相同,ip相同,端口不同:
错误日志:vim /var/log/httpd/error_log
1.创建子配置文件:test.confcd /etc/httpd/conf.d/vim test.conf###################Listen 81Listen 82#虚拟主机1<VirtualHost *:81> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ipDocumentRoot /alan #发布网站目录,自己定义ServerName www.alan.com #域名,可以自己定义<Directory "/alan/"> AllowOverride None #设置目录的特性 Require all granted #允许所有人访问</Directory></VirtualHost>#虚拟主机2<VirtualHost *:82> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ipDocumentRoot /tom #发布网站目录,自己定义ServerName www.alan.com #域名,可以自己定义<Directory "/tom/"> AllowOverride None #设置目录的特性 Require all granted #允许所有人访问</Directory></VirtualHost>
2.其他操作同《基于域名》systemctl restart httpdcurl www.alan.com:81
3.基于IP
端口相同,域名相同,ip不同:
输入域名,通过DNS解析为不同的IP。
错误日志:vim /var/log/httpd/error_log
1添加临时ipip a a 192.168.137.153/24 dev ens332.创建子配置文件:test.confcd /etc/httpd/conf.d/vim test.conf###################<VirtualHost 192.168.137.152:80>DocumentRoot /alanServerName www.alan.com<Directory "/alan/"> AllowOverride None Require all granted</Directory></VirtualHost><VirtualHost 192.168.137.153:80>DocumentRoot /tomServerName www.alan.com<Directory "/tom/"> AllowOverride None Require all granted</Directory></VirtualHost>
3.其他操作同《基于域名》systemctl restart httpd4.修改本地域名解析vim /etc/hostscurl 192.168.137.152