• Linux命令学习—Apache 服务器(上)


    1.1、http 服务原理

    1. http 超文本传送协议 80 端口
    2. https 安全的超文本传输协议 443 端口
    3. 基于 C/S(客户端/服务端)模型

    协议流程:

    1. 连接:客户端与服务端建立连接
    2. 请求:客户端向服务端发送请求
    3. 应答:服务端响应,将结果传给客户端
    4. 关闭:执行结束后关闭

    1.2、Apache 服务器介绍

            Apache 是常见的支持 HTTP 协议的 Web 服务器之一,也是使用最广泛的 Web 服务器。截止到今年 1 月, 世界上大约有超过 500 万台 Internet 服务器使用的是 Apache Server。

            Apache Server 的主要特点是稳定性高、速度快、功能多。通过第三方的评测,Apache Server 比大多数 的 Web 服务器都快。

            Apache 服务器既是一种软件,又是一个工程。它是由千千万万的服务器代码和文档开发者共同努力的 结果。在 1995 年 4 月,公开发行了第一套 Apache Server,版本号是 0.6.2。Apache Server 的名字来源于 “A PatCHy Server”。

    1.2.1、Apache——A Patchy Server

    特点:

    支持最新的 HTTP1.1 协议。

    支持 PHP、CGI、Java Servlets 和 FastCGI。

    支持安全 Socket 层。 集成了 Perl 脚本编程语言。

    支持 SSI 和虚拟主机。

    实现了动态共享对象,允许在运行时动态装载功能模块。

    具有安全、有效和易于扩展等特征。

    Apache 的主要特点:

    支持进程控制:在需要前自动复制进程,进程数量自动使用需求

    支持动态加载模块:不需重编译就可扩展其用途

    支持虚拟主机:允许使用一台 web 服务器提供多个 web 站点的共享

    1.2.2、APACHE 相关文件

    1. 配置文件:/etc/httpd/conf/httpd.conf
    2. 服务器的根目录:/etc/httpd
    3. 根文档目录:/var/www/html
    4. 访问日至文件:/var/log/httpd/access_log
    5. 错误日至文件:/var/log/httpd/error_log
    6. 运行 Apache 的用户:apache
    7. 运行 Apache 的组:apache
    8. 端口:80
    9. 模块存放路径:/usr/lib/httpd/modules

    1.2.3、文件系统容器和网络空间容器

    文件系统容器

           和是针对文件系统的指令。段中的指令作用于指定的文件系统目录及其所 有子目录,.htaccess 文件可以达到同样的效果。

    网络空间容器

    是针对网络空间的指令。

    指令无须文件系统的支持 。

    注释:对比动态站点和静态站点页面来讲解

    1.2.4、Apache 的进程和服务

    1. apache 的进程---httpd
    2. apache 的启动 service httpd start
    3. apache 的停止 service httpd stop
    4. apache 的重新启动 service httpd restart

    1.3、创建个人主页

    1.3.1、主配置文件介绍

    各字段介绍:

    1. ServerRoot:设定 Apache 安装的绝对路径
    2. TimeOut:设定服务器接收至完成的最长等待时间
    3. KeepAlive:设定服务器是否开启连续请求功能
    4. MaxKeepAliveRequests:设定服务器所能接受的最大连续请求量
    5. KeepAliveTimeout:使用者 ‘连续’ 请求的等待时间上限

    一般主要配置字段

    1、AccessFileName

    默认值:AccessFileName .htaccess

    此命令是针对目录的访问控制文件的名称;

    2、BindAddress

    默认值:BindAddress *

    设置服务器监听的 IP 地址;

    3、DefaultType

    默认值:DefaultType text/html

    服务器不知道文件类型时,用缺省值通知客户端;

    4、DocumentRoot

    默认值:DocumentRoot “/var/www/html/

    设置 Apache 提供文件服务的目录;

    5、ErrorDocument

    设置当有问题发生时,Apache 所做的反应;

    6、

    使用不包含在 Apache 安装中的模块的命令

    7、Include

    包含其它的配置文件

    8、Listen

    默认值:所有能够连接到服务器的 IP 地址

    指定如何响应除去 Port 指定的端口地址外的地址请求;

    9、Options

    控制某个特定目录所能使用的服务器功能;

    其值有:

               None:表示只能浏览,

    1.   FollowSymLinks:允许页面连接到别处,
    2.   ExecCGI:允许执行 CGI,
    3. MultiViews:允许看动画或是听音乐之类的操作,
    4.   Indexes:允许服务器返回目录的格式化列表,
    5.   Includes:允许使用 SSI。这些设置可以复选。
    6.   All:则可以做任何事,但不包括 MultiViews。
    7.   AllowOverride:加 None 参数表示任何人都可以浏览该目录下的文件。
    8. 另外的参数有:FileInfo、AuthConfig、Limit。

    10、Port

    默认值:Port 80

    设置服务器监听的网络端口;

    11、ServerAdmin

    设定管理员的电子邮件地址;

    12、ServerName

    设定服务器的主机名称;

    13、ServerRoot

    默认值:ServerRoot /etc/httpd/

    设定服务器的根目录;

    14、User && Group

    指定服务器用来回答请求的用户 ID 和组 ID;

    1.3.2、编辑主配置文件

    1. vi /etc/http/conf/httpd.conf
    2. 第(354 行)
    3. UserDir Disable 改成#UserDir Disable
    4. (361 行)启动个人主目录名称,去掉#
    5. UserDir public_html #配置个人主目录
    6. (369-380 行)启动个人用户 Web 站点的访问权限,去掉#
    7. <Directory /home/*/public_html>
    8. AllowOverride FileInfo AuthConfig Limit
    9. Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    10. <Limit GET POST OPTIONS>
    11. Order allow,deny
    12. Allow from all
    13. </Limit>
    14. <LimitExcept GET POST OPTIONS>
    15. Order deny,allow
    16. Deny from all
    17. </LimitExcept>
    18. </Directory>

    1.3.3、启动或重启 Apache 服务

    service httpd start(restart)
    

    1.3.4、创建自己的个人主页

    1、添加用户

    useradd user

    2、切换用户,并进入用户主目录

    su - user
    

    3、创建文档目录,建立测试页,添加执行权限

    1. mkdir public_html 创建文档目录,
    2. vi public_html/index.html 建立测试页,
    3. cd /home
    4. chmod 711 user 添加执行权限

    1.3.5、使用浏览器测试

    在浏览器中 http://域名或者 IP 地址/~用户名

    1. example:
    2. http://www.baidu.com/~user

    1.4、发布默认站点下目录的内容

    1.4.1、进入默认根文档目录并新建目录

    1. cd /var/www/html
    2. mkdir 目录

    1.4.2、在新建的目录下生成测试文件和测试目录

    1. touch 文件名
    2. mkdir 目录

    1.4.3、编辑主配置文件

    1. vi /etc/httpd/conf/httpd.conf
    2. 使用文件系统容器生成文件指定目录位置
    3. <Directory /var/www/html/redhat>
    4. Options Indexes
    5. </Directory>

    1.4.4、重新启动服务器并测试

    1. service httpd restart
    2. http://www.baidu.com/redhat

    1.5、配置目录访问控制

    1.5.1、访问控制指令

    1. order 顺序,设定拒绝和允许的先后顺序
    2. deny 拒绝
    3. allow 允许
    4. example:
    5. order deny,allow 拒绝所有的访问,除去明确允许的
    6. “拒绝优先,即默认拒绝”
    7. order allow,deny 允许所有的访问,除去明确拒绝的
    8. “允许优先,即默认允许”
    9. deny from 拒绝的范围
    10. 可以是 IP 地址,如 192.168.10.x,或者 192.168.10 或者 192.168.1.0/255.255.255.0 或者
    11. 192.168.10.0/24
    12. (针对无类的 IP 地址可以加子网掩码)可以是域名,如 aaa.bbb ;All 代表所有的
    13. allow from 允许的范围
    14. 可以是 IP 地址,如 192.168.10.x,或者 192.168.10 或者 192.168.1.0/255.255.255.0 或者
    15. 192.168.10.0/24
    16. 可以是域名,如 aaa.bbb ;All 代表所有的

    1.5.2、对站点进行访问控制设置

    编辑主配置文件

    拒绝优先

    1. <Directory /var/www/html/redhat>
    2. Options Indexes
    3. Order deny,allow
    4. Deny from all
    5. Allow from 200.200.200.200 只允许 200.200.200.200
    6. </Directory>
    7. 允许优先
    8. <Directory /var/www/html/redhat>
    9. Options Indexes
    10. Order allow,deny
    11. Allow from all
    12. Deny from 200.200.200.200 只拒绝 200.200.200.200
    13. </Directory>

    重启服务器测试

    1.6、配置认证指令

    1. AuthName 认证名字
    2. AuthType 认证类型,有两种
    3. Basic,基本认证类型,所有浏览器均支持
    4. Digest,摘要认证类型,部分浏览器不支持
    5. AuthUserFile 认证用户文件,存放认证用户的列表文件
    6. Require valid-user 授权给通过认证的所有用户
    7. Require user 用户名 授权给通过认证的指定用户

    1.6.1、在主配置文件中添加授权认证的指令

    1. <Directory /var/www/html/redhat>
    2. Options Indexes
    3. AuthName “rz” 认证名称为 rz
    4. AuthType Basic 认证类型为基本认证类型
    5. AuthUserFile file1 指定认证用户文件
    6. Require valid-user 授权给通过认证的所有用户
    7. </Directory>

    1.6.2、生成认证授权文件,并添加用户

    #htpasswd -c /etc/httpd/认证文件 用户名
    

    1.6.3、更改认证授权文件的属主和属组为 apache

    #chown apache.apache /etc/httpd/认证文件

    1.6.4、重新启动 apache 服务

    #service httpd restart

    1.6.5、访问测试

  • 相关阅读:
    一种基于IO口的模拟串口(LOG)实现方法
    前端--CSS
    许战海战略文库|隆基绿能,光伏龙头如何走出战略无人区?
    英国国家卫生服务遭受攻击,系统出现大面积故障
    推荐十个优秀的ASP.NET Core第三方中间件,你用过几个?
    国学*周易*梅花易数 代码实现效果展示 - 梅花心易
    并发编程的一点思考
    Java程序设计——execute()与executeUpdate()(JDBC编程)
    pytorch - storage(), stride()
    项目进展跟踪的5个基本原则
  • 原文地址:https://blog.csdn.net/qq_61861243/article/details/137932602