Apache改静态网页

 1.概述: Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP、PHP)

  Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行
2.方法:
                   先安装软件包httpd:yum install httpd
                   然后浏览器中输入地址:        192.168.10.10即可出现测试页面 
                   主配置文件位置:vim /etc/httpd/conf/httpd.conf 
                   默认网站数据目录:/var/www/html 
 
 ---------------------------如果将默认网站数据目录修改为/home/wwwroot-----
----SElinux------------------------------------------------------------
 SELinux安全策略包括域和安全上下文:

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

SELinux安全上下文:对系统资源进行限制(查看方式:ls -Z
修改默认数据目录后,selinux安全上下文不一样:
 [root@linuxprobe ~]# ls -Zd /var/www/html

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
[root@linuxprobe ~]# ls -Zd /home/wwwroot
drwxrwxrwx. root root unconfined_u:object_r:home_root_t:s0 /home/wwwroot

用户段:root表示root账户身份,user_u表示普通用户身份,system_u表示系统进程身份。
角色段:object_r是文件目录角色,system_r是一般进程角色。
类型段:进程和文件都有一个类型用于限制存取权限
 修改网站数据目录的安全上下文:

[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

修改网站数据的安全上下文(*代表所有文件或目录):

[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

这样操作后查看到SELinux安全上下文依然没有改变,不要着急,再执行下restorecon命令即可:

[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/

个人用户主页

说明:可以为服务器系统内的用户生成个人网站

1.编辑配置文件:vim /etc/httpd/conf.d/userdir.conf
改:
#UserDir disabled
UserDir public_html
 注意:UserDir参数表示的是需要在用户家目录中创建的网站数据目录的名称(即public_html)
并且需要设置/home/linuxprobe目录权限:   chmod 755 /home/linuxprobe/
修改之后,还需要改SELinux的域限制:
先查找有个httpd服务的域:getsebool -a | grep "httpd" 
修改其中的:  setsebool -P httpd_enable_homedirs=on

添加密码:
 1.先生成一个验证账户,任意: htpasswd -c /etc/httpd/passwd lichen    (/etc/httpd/passwd为密码保存位置)
 2.编辑配置文件:vim /etc/httpd/conf.d/userdir.conf 
3.在配置文件最后添加: 
 <Directory "/home/*/public_html">

AllowOverride all
authuserfile "/etc/httpd/passwd"
authname "HAHAHAHAHAHAH"
authtype basic
require user lichen
</Directory>
4.重启httpd服务。
5.完成。 

虚拟网站主机

 一、基于IP地址
就是说,一台服务器有多个IP地址,用户访问不同的IP地址时显示不同的页面。

第1步:为网卡添加多个IP地址,添加完后ping 192.168.10.10/20/30 都能ping通。
        第2步: 分别创建网站数据目录:mkdir -p /home/wwwroot/10
                                                            mkdir -p /home/wwwroot/20
                                                            mkdir -p /home/wwwroot/30
                        分别写入文件index.html    内容分别为10.20.30
        第3步:在主配置文件/etc/httpd/conf/http.conf中描述基于IP地址的虚拟主机.
 <VirtualHost 192.168.10.10>

DocumentRoot /home/wwwroot/10
ServerName www.hostname1.com
<Directory /home/wwwroot/10 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.20>
DocumentRoot /home/wwwroot/20
ServerName bbs.hostname1.com
<Directory /home/wwwroot/20 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.30>
DocumentRoot /home/wwwroot/30
ServerName tech.hostname1.com
<Directory /home/wwwroot/30 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

第4步:修改网站数据目录的SELinux安全上下文:
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
        第5步:立即恢复安全上下文 :
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot 
        第6步:验证。在浏览器地址栏分别输入192.168.10.10   192.168.10.20    192.168.10.30出现不同的信息。

二、基于主机名 
         当服务器无法为每个网站都分配到独立IP地址时,可以试试让Apache服务程序自动识别来源主机名或域名然后跳转到指定的网站。
第1步:配置网卡与hosts文件
        网卡地址配置为:192.168.10.10 
        配置hosts文件: hosts文件作用是定义IP地址与主机名的映射关系,即强制将某个主机名地址解析到指定的IP地址
         [root@linuxprobe ~]# vim /etc/hosts

//每行只能写一条,格式为IP地址+空格+主机名(域名)。
        192.168.10.10 www.hostname1.com
        192.168.10.10 bbs.hostname1.com
        192.168.10.10 tech.hostname1.com

第2步:创建目录并写入文件:
         [root@linuxprobe ~]# mkdir -p /home/wwwroot/www
     [root@linuxprobe ~]# mkdir -p /home/wwwroot/bbs
        [root@linuxprobe ~]# mkdir -p /home/wwwroot/tech

[root@linuxprobe ~]# echo "WWW.hostname1.com" > /home/wwwroot/www/index.html
     [root@linuxprobe ~]# echo "BBS.hostname1.com" > /home/wwwroot/bbs/index.html
          [root@linuxprobe ~]# echo "TECH.hostname1.com" > /home/wwwroot/tech/index.html

第3步:在配置文件中描述基于主机名称的虚拟主机:在主配置文件末尾添加
 <VirtualHost 192.168.10.10>
 
DocumentRoot "/home/wwwroot/www"
ServerName "www.hostname1.com"
<Directory "/home/wwwroot/www">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.10>
 
DocumentRoot "/home/wwwroot/bbs"
ServerName "bbs.hostname1.com"
<Directory "/home/wwwroot/bbs">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.10>
 
DocumentRoot "/home/wwwroot/tech"
ServerName "tech.hostname1.com"
<Directory "/home/wwwroot/tech">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
 
第4步:修改网站数据目录的SELinux安全上下文:
 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*

让新的SELinux安全上下文立即生效:
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
第5步,分别访问网页验证结果.  www.hostname1.com  tech.hostname1.com  bbs.hostname1.com

三、基于端口号 6111、6222
 第1步:配置IP地址192.168.10.10
     第2步:创建网站数据目录
                 mkdir -p /home/wwwroot/6111
           mkdir -p /home/wwwroot/6222
             echo "port:6111" > /home/wwwroot/6111/index.html
                 echo "port:6222" > /home/wwwroot/6222/index.html
    第3步 :在主配置文件中描述基于端口号的虚拟主机
                 配置文件42行添加监听端口 Listen 6111    
                                                                Listen 6222
                    配置文件末尾添加:
 <VirtualHost 192.168.10.10:6111>

DocumentRoot "/home/wwwroot/6111"
ServerName www.hostname1.com
<Directory "/home/wwwroot/6111">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.10:6222>
DocumentRoot "/home/wwwroot/6222"
ServerName bbs.hostname1.com
<Directory "/home/wwwroot/6222">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
                                                       如果重启服务会报错。 因为6111、6222不是该服务默认端口,会被SELinux拒绝
                  第4步:
修改网站数据目录的SELinux安全上下文并允许端口监听。
 
semanage fcontext -a -t httpd_user_content_t /home/wwwroot
 semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6111
 semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6111/*
 semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6222
 semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6222/*
立即生效:

restorecon -Rv /home/wwwroot/
使用semanage命令搜索在SELinux系统中有关http服务的端口号:
 semanage port -l| grep http
把6111 6222端口添加进去:
 semanage port -a -t http_port_t -p tcp 6111
     semanage port -a -t http_port_t -p tcp 6222
再次重启httpd服务就没有问题了: systemctl restart httpd
            第5步:访问网站验证结果: 192.168.10.10:6111 192.168.10.10:6222

Apache访问控制

第1步:   创建网站数据目录和首页文件
                    mkdir /var/www/html/server
                        echo "succesful" > /var/www/html/server/index.html
第2步:   修改配置文件
                    vim /etc/httpd/conf/httpd.conf
                        第129行:例如只允许IE浏览器访问本网站
                            <Directory "/var/www/html/server">
                                SetEnvIf User-Agent  "Internet Explorer"    ie=1
                                Order    allow,deny
                                Allow from env=ie
                            </Directory> 
                        例如只允许火狐浏览器访问:
                         <Directory "/var/www/html/server">

SetEnvIf User-Agent  "FireFox"    ff=1
                                Order    allow,deny
                                Allow from env=ff
                            </Directory>
                          例如仅允许192.168.10.20的主机访问:
                            <Directory "/var/www/html/server">
                                Order    allow,deny
                                Allow  from 192.168.10.20
                            </Directory>
第3步: 重启服务验证

我们还可以基于主机名IP地址以及客户端特征做Apache网页资源的访问控制,常用的指令有:

Order(排序),Allow(允许),Deny(拒绝),Satisfy(满足)。
 
其中Order指令用于定义Allow或Deny起作用的顺序,分别实现了允许或者拒绝某个主机访问服务器网页资源。

匹配原则为:按顺序匹配规则并执行,若未匹配成功则执行后面的执行。

比如说"Order Allow,Deny"则代表着先将客户端与允许规则进行对比,若匹配成功则允许访问,反之则直接拒绝。

Linux:Apache改静态网页、个人用户主页、虚拟网站主机、Apache访问控制的更多相关文章

  1. Apache—httpd服务创建个人用户主页功能

    创建个人用户主页功能 第1步:开启个人用户主页功能  UserDir disabled前加# UserDir public_html 去掉前面# UserDir参数表示的是需要在用户家目录中创建的网站 ...

  2. 【CentOS7】Apache发布静态网页-超简单

    目前能够提供Web网络服务的程序有 IIS. Nginx和 Apache等.其中,IIS (Internet Information Services,互联网信息服务)是 Windows系统中默认的 ...

  3. Linux下配置静态IP地址,设置DNS和主机名

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  4. linux使用apache发布静态html网页

    环境 centOS7+httpd 安装httpd 安装 #检查是否安装和httpd rpm -qa | grep httpd #如果没安装 yum -y install httpd 启动httpd并验 ...

  5. 在虚拟机上的关于Apache(阿帕奇)(2)开启个人用户主页功能

    首先下载httpd服务 在这里我们主要谈一谈个人主页功能分为不加密和加密两种 不加密 我们先来建立几个用户,使用命令:useradd  longshisan 使用命令:   Passwd  longs ...

  6. Apache服务——个人用户主页功能

    使用Apache服务部署静态网站(二) 个人用户主页功能 Apache服务程序中有个默认未开启的个人用户主页功能,能够为所有系统内的用户生成个人网站,确实很实用哦~ 第1步:开启个人用户主页功能: [ ...

  7. Apache服务及个人用户主页功能和密码验证

    Apache服务程序中有个默认未开启的个人用户主页功能,能够为所有系统内的用户生成个人网站,确实很实用哦 第1步:开启个人用户主页功能: 1.vim /etc/httpd/conf.d/userdir ...

  8. (Apache服务)个人用户主页功能

    1.开启个人用户主页功能 (1)输入命令“vi /etc/httpd/conf.d/userdir.conf” (2)将第17行UserDir disabled前加一个#    将第24行UserDi ...

  9. 静态网页、动态网页、apache和tomcat之间区别和联系

    1.静态网页 静态网页:在网站设计中, 纯粹的HTML(标准通用标志语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是标准的HTML文件,它的拓拓展名是.html或者. ...

随机推荐

  1. 【POI2007】【Bzoj 1103】大都市meg

    http://www.lydsy.com/JudgeOnline/problem.php?id=1103 在线查询某点到根节点的点权和,参考DFS序&欧拉序列,用树状数组维护即可O(nlogn ...

  2. D1 模拟赛

    T1 note 数组开小 菜的真实 60分 题目大意: 一个字符串 分成若干段 使每段内都没有重复的字符 求最少的段数 思路: 可以贪心 #include<iostream> #inclu ...

  3. BZOJ_1150_[CTSC2007]数据备份Backup_堆+贪心

    BZOJ_1150_[CTSC2007]数据备份Backup_堆+贪心 Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏 ...

  4. pycharm打开多个项目并存

    问题: 有时我们需要打开多个项目,而现在的做法是:  原有的a项目不动,新打开一个pycharm来打开b项目, 或者 在原有的a项目中打开b项目并覆盖a项目,即a项目与b项目不能共存 需求: 有时我们 ...

  5. javascript BOM基本知识

    1.BOM(Bowser Object Model浏览器对象模型) 浏览器创建的对象通常称作文档(Document)对象,它是浏览器使用的众多对象的一部分,浏览器操作的对象结合起来称作浏览器对象模型( ...

  6. bzoj 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富【记忆化搜索+剪枝】

    c[x][y]为从(x,y)到(n,m)的最大值,记忆化一下 有个剪枝是因为y只能+1所以当n-x>m-y时就算x也一直+1也是走不到(n,m)的,直接返回0即可 #include<ios ...

  7. bzoj 1233: [Usaco2009Open]干草堆tower【dp+单调栈】

    参考:https://www.cnblogs.com/N-C-Derek/archive/2012/07/11/usaco_09_open_tower.html 虽然长得很像斜率优化,但是应该不算-- ...

  8. robotframework - create dictionary 操作

    1.创建字典 2.从字典中获取的项 -- 打印出 item 3.获取字典的key -- 打印出 key 4.获取字典的value -- 打印出 value 5.获取字典key,value 6.打印出字 ...

  9. Nginx(三) 常用配置整理

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  10. 键盘按钮keyCode大全:获取按键对应的键值的方法

    没有大全,只有方法,授人与鱼不如授人于渔: 下面这行代码,大家可以打在控制台里,直接进行测试: document.body.onkeyup = function (e) { e = e || wind ...