0


Linux 【web 服务器】Apache(httpd)

    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.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

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>

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>

3.其他操作同《基于域名》
systemctl restart httpd
4.修改本地域名解析
vim /etc/hosts
curl  192.168.137.152
标签: 服务器 linux 运维

本文转载自: https://blog.csdn.net/qq_43606536/article/details/140405231
版权归原作者 散落在麦田的星 所有, 如有侵权,请联系我们删除。

“Linux 【web 服务器】Apache(httpd)”的评论:

还没有评论