Linux 【web 服务器】Apache(httpd)
散落在麦田的星 2024-10-06 14:03:04 阅读 64
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
<code>yum install -y httpd
#启动:
systemctl start httpd
#状态:
systemctl status httpd
#查看端口:
netstat -lntp | grep 80
配置文件目录:
<code>网站根目录:/var/www/html/
错误信息目录:/var/www/error/
Apache日志文件:/var/log/httpd/
主要执行文件: /usr/sbin/apachectl
二进制执行文件: /usr/sbin/httpd
主配置文件:/etc/httpd/conf/httpd.conf
cd /etc/httpd/
#
./conf/ 主配置文件
./conf.d/ 子配置文件
./logs/ 存储日志
./modules/ 存储模块
./run/ 存储Pid文件,存放的pid号码。是主进程号
查看配置文件:
vim /etc/httpd/conf/httpd.conf
ServerRoot "/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.conf
1.默认允许所有主机访问
<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.conf
cd /etc/httpd/conf.d/
vim test.conf
#虚拟主机1
<VirtualHost *:80> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ip
DocumentRoot /alan #发布网站目录,自己定义
ServerName www.alan.com #域名,可以自己定义
<Directory "/alan/">
AllowOverride None #设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
#虚拟主机2
<VirtualHost *:80> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ip
DocumentRoot /tom #发布网站目录,自己定义
ServerName www.tom.com #域名,可以自己定义
<Directory "/tom/">
AllowOverride None #设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
2.创建 /alan 目录:默认页面发布目录
mkdir /alan
mkdir /tom
3.创建 index.html 文件,作为默认页面
echo "My name is alan." >>/alan/index.html
echo "My name is tom." >>/tom/index.html
4.给权限:重启:
chmod 777 /alan
chmod 777 /alan/index.html
chmod 777 /tom
chmod 777 /tom/index.html
systemctl restart httpd
5.修改本地域名解析
vim /etc/hosts
<code>6.查看:
curl www.alan.com
2.基于端口
域名相同,ip相同,端口不同:
错误日志:vim /var/log/httpd/error_log
1.创建子配置文件:test.conf
cd /etc/httpd/conf.d/
vim test.conf
###################
Listen 81
Listen 82
#虚拟主机1
<VirtualHost *:81> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ip
DocumentRoot /alan #发布网站目录,自己定义
ServerName www.alan.com #域名,可以自己定义
<Directory "/alan/">
AllowOverride None #设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
#虚拟主机2
<VirtualHost *:82> #VirtualHost:虚拟主机端口;*代表监听本机所有ip,也可以指定ip
DocumentRoot /tom #发布网站目录,自己定义
ServerName www.alan.com #域名,可以自己定义
<Directory "/tom/">
AllowOverride None #设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
<code>2.其他操作同《基于域名》
systemctl restart httpd
curl www.alan.com:81
3.基于IP
端口相同,域名相同,ip不同:
输入域名,通过DNS解析为不同的IP。
错误日志:vim /var/log/httpd/error_log
1添加临时ip
ip a a 192.168.137.153/24 dev ens33
2.创建子配置文件:test.conf
cd /etc/httpd/conf.d/
vim test.conf
###################
<VirtualHost 192.168.137.152:80>
DocumentRoot /alan
ServerName www.alan.com
<Directory "/alan/">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.137.153:80>
DocumentRoot /tom
ServerName www.alan.com
<Directory "/tom/">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<code>3.其他操作同《基于域名》
systemctl restart httpd
4.修改本地域名解析
vim /etc/hosts
curl 192.168.137.152
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。