apache

主流的Web软件

IIS

  • 能提供Web网站服务还能提供FTP、NMTP、SMTP等服务功能,但是只支持Windows系统

nginx

  • 稳定性和丰富的功能
  • 低系统资源、占用内存少且并发能力强

Apache

  • 跨平台和安全性
  • 快速、可靠、简单的API扩展
  • 具有很高的Web服务软件市场占有率
  • 全球使用最多的Web服务软件
  • 开源、跨平台

Tomcat

  • 轻量级的Web服务软件
  • 用于开发和调试JSP代码

部署

安装Apache服务程序

[root@localhost ~]# yum install -y httpd

启动并设为开机自启

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

关闭防火墙与内核防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

至此你就可以在浏览器上面输入你的网址进行访问,如果搭建成功则会显示apache默认欢迎界面

配置服务文件

相关文件目录

服务目录 /etc/httpd
配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log

主配置文件

Apache的主配置文件为/etc/httpd/conf/httpd.conf

主配置文件里有如下参数

image-20210117154836115

修改网站数据目录

将主配置文档第119行的DocumentRoot后的路径修改为所需路径,同时修改第123行的路径为所需路径(所需路径需相同)

修改完成后需重启Apache服务才能生效


个人用户主页功能

开启个人用户主页功能
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
  • 注释第17行UserDir disabled

  • 启用第23行UserDir public_html

重启apache服务

创建个人用户网站数据
  • 切换为普通用户
  • 在普通用户的家目录中创建public_html目录
  • 写入内容
  • 重启apache
  • 赋予普通用户目录和public_html 777权限给other用户才能访问,否则403
  • 访问网址IP/~用户名
增加密码安全验证
  • 切换到普通用户

  • 生成密码数据库(-c用于第一次生成)

    • htpasswd -c /etc/httpd/passwd 用户名
  • 编写配置文件/etc/httpd/conf.d/userdir.conf

    <Directory "/home/*/public_html">
        AllowOverride all
        authuserfile /etc/httpd/passwd
        authname "My privately website"
        authtype basic
        require user linxprobe
    </Directory>
    

虚拟网站主机功能
基于IP地址
  • 使用nmtui命令为网卡添加多个IP地址(Manual模式)

  • 设置完成后记得重启网卡,然后ping刚刚设置的IP

  • 分别创建网站数据目录

    • /home/wwwroot/10
    • /home/wwwroot/20
    • /home/wwwroot/30
  • 在目录中写入主页文件

  • 在配置文件中描述基于IP地址的虚拟主机

    <VirtualHost 192.168.10.10>
    DocumentRoot /home/wwwroot/10
    ServerName www.linuxprobe.com
    <Directory /home/wwwroot/10>
    AllowOverride None
    Require all granted
    </Directory>
    </VirtualHost>
    <VirtualHost 192.168.10.20>
    ....
    </VirtualHost>
    <VirtualHost 192.168.10.30>
    .....
    </VirtualHost>
    
端口访问
  • 创建网页目录,并写入不同的主页文件
  • 进入apache主配置文档,找到第42行的Listen80,追加
    • Listen 6111
    • Listen 6222
  • 在虚拟主机配置文件中写地址加端口号即可

Apache访问控制

  • 可以基于主机名、IP地址、以及客户端特征做Aoache网络资源的访问控制

  • 常用的有 Order(排序),Allow(允许),Deny(拒绝),Satisfy(满足)

  • 在主配置文件的129行的地方添加参数

    <Directory "/var/www/html/server">
    SetEnvIF User-Agent "Internet Explorer" ie=1
    Order allow,deny
    Allow from env=ie
    </Directory>
    
  • 重启apache服务