zoukankan      html  css  js  c++  java
  • 使用Apache服务部署静态网站

    1. 网站服务程序

      windows系统中默认Web服务程序是IIS(Internet Information Services),这是一款图形化的网站管理工具,IIS程序不光能提供Web网站服务,还能够提供FTP、NMTP、SMTP等服务功能,但只能在Windows中使用。

      nginx---最初于2004年10月4日为俄罗斯知名门户站点而开发的,作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而深受信赖,但最最最被认可的是低系统资源、占用内存少且开发能力强,目前国内如新浪、网易、腾讯等门户站均使用。

      Apache---由于其跨平台和安全性广泛被认可且拥有快速,可靠,简单的API扩展,目前拥有很高的Web服务软件市场占用率,全球使用最多的Web服务软件,开源、跨平台(可运行于Unix/linux/windwos中)

      支持基于IP或域名的虚拟主机

      支持多种方式的HTTP认证

      集成代理服务器模块

      安全Socket层(SSl)

      能够实时监视服务状态与定制日志

      多种模块的支持

      Tomcat----属于清凉级的Web服务软件,一般用于开发和调试JSP代码,通常认为Tomcat是Apache的扩展程序

    2. 安装Apache服务程序

      前面的博客https://www.cnblogs.com/xiaobingqianrui/p/9358689.html介绍了如何Yum和网卡的配置,在准备工作做好后:

      (1)yum install httpd

      (2)systemctl start httpd

      (3)systemctl enable httpd   // 设置为开机自动启动

      (4)打开浏览器http://127.0.0.1进行测试

    3. 配置服务文件参数

      服务目录: /etc/httpd

      配置文件: /etc/httpd/conf/httpd.conf

      网站数据目录: /var/www/html

      访问日志:/var/log/httpd/access_log

      错误日志: /var/log/httpd/error_log

      配置文件相关参数:

      ServerRoot: 服务目录

      ServerAdmin: 管理员邮箱

      User: 运行服务用户

      Group: 运行服务的用户组

      serverName: 网站服务器的域名

      DocumentRoot: 网站数据目录

      Listen: 监听的IP地址与端口

      DirectoryIndex: 默认的索引页面

      ErrorLog: 错误日志文件

      CustomLog: 访问日志文件

    4. 强制访问控制安全子系统

      

      SELinux全称为Security-Enhanced Linux是美国国家安全局在Linux社区帮助下开发的一个强制访问控制的安全子系统,SELinux属于MAC强制访问控制(Mandatory),即让系统中的各个服务进程都收到约束,即仅能访问到所需要的文件

      enforcing:安全策略强制启用模式,将会拦截服务的不合法请求

      permissive:遇到服务越权访问只会发出警告而不强制拦截

      disable:对于越权的行为不警告,也不拦截

      

      SELinux安全策略包括域和安全上下文:

      SELinux域:对进程资源进行限制(参看方式:ps -Z)

      SELinux安全上下文:对系统资源进行限制(查看方式:ls -Z)

      semanage命令用于查询与修改SELinux的安全上下文,格式为semanage [选项] [文件]

      -l:查询

      -a:增加

      -m:修改

      -d:删除

      restorecon命令用于恢复SELinux文件安全上下文:restorecon [选项] [文件]

      -i:忽略不存在的文件

      -e: 排除目录

      -R: 递归目录(针对目录使用)

      -v:显示详细的过程

      -F:强制恢复

      更多详细参数参考:http://man.linuxde.net/semanage

    5. 虚拟网站主机功能(基于IP)

    (1)使用nmtui命令为网卡添加多个IP地址(192.168.10.10/20/30),当用户访问不同IP地址时显示不同的网站页面

    (2)重启网卡设备后ping检查是否配置正确

      systemctl start network

      若start network失败,可以使用 cat /var/log/messages | grep network进行查看日志消息

      ping 192.168.10.10

    (3)分别创建网站数据目录,针对不同的ip

    mkdir -p /home/wwwroot/10
    mkdir -p /home/wwwroot/20
    mkdir -p /home/wwwroot/30
    
    echo "ip:192.168.10.10" > /home/wwwroot/10/index.html
    echo "ip:192.168.10.10" > /home/wwwroot/20/index.html
    echo "ip:192.168.10.10" > /home/wwwroot/30/index.html

    (4)在/etc/http/conf/httpd.conf配置文件中编辑基于IP的虚拟主机

    <virtualhost 192.168.10.10>
    DocumentRoot /home/wwwrppt/10
    ServerName fate0729
    <Directory>
    AllowOverride None
    Require all granted    
    Order allow,deny
    Allow from 192.168.10.0/24
    </Directory>    
    </virtualhost>
    
    ..............

    (5)重启apache和加入到开机项

      systemctl restart httpd

      systemctl enable httpd

     (6)修改网络数据目录的SELinux安全上下文

    semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
    semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
    semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
    
    ....................
    // 立即恢复SELinux安全上下文
    restorecon -Rv /home/wwwroot

    (7)这样我们就可以输入网址进行测试了,若打开网页失败,可以关闭防火墙,iptables -F

  • 相关阅读:
    Java -- Map
    Bootstrap -- 标签属性
    SQLServer -- 竟然默认不区分大小写
    ThinkPHP -- 问题
    ThinkPHP
    MVC-内容详情页显示内容
    未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。
    Random.Next获取随即数
    Razor语法小记
    VisualStudio自定义代码段_方法二
  • 原文地址:https://www.cnblogs.com/xiaobingqianrui/p/9359421.html
Copyright © 2011-2022 走看看