一、目录别名实验

当 apache 接受请求时,在默认情况下会将 DocumentRoot 目录中的文件送到客户端,如果想将某一不在 DocumentRoot 目录中的文件共享到网站上,并希望将它们留在本来位置而不需要进行移动的话, 处理这种情况可以通过建立别名的方式将 URL 指向特定的目录。

1、修改主配置文件

大概在468行左右,取消注释

[root@centos ~]# vim /usr/local/apache2/etc/httpd.conf
Include etc/extra/httpd-autoindex.conf
2、修改子配置文件
[root@centos ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf
Alias /test/ "/tmp/test/"
<Directory "/tmp/test/">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
3、创建目录,并创建文件
[root@centos ~]# mkdir /tmp/test/
[root@centos test]# echo 123456 > 1.txt
4、浏览器进行访问

二、Apache 的用户认证

有时候,我们需要给一些特殊的访问设置一个用户认证机制,增加安全。比如我们的个人网站,一般都是有一个管理后台的,虽然管理后台本身就有密码,但我们为了更加安全,可以再设置一层用户身份认证。

1、修改主配置文件
[root@centos apache2]# vim /usr/local/apache2/etc/httpd.conf
<Directory "/usr/local/apache2/htdocs/admin"> #声明被保护目录
Options Indexes FollowSymLinks
AllowOverride All #开启权限认证文件.htaccess
Require all granted #允许访问
</Directory>
2、在指定目录下创建权限文件
[root@centos apache2]# mkdir /usr/local/apache2/htdocs/admin
[root@centos admin]# vim .htaccess
AuthName "Welcome to admin manager" #提示信息
AuthType basic #加密类型
AuthUserFile /usr/local/apache2/htdocs/admin/admin.passwd #密码文件,文件名自定义。
require valid-user #允许密码文件中所有用户访问
3、在指定目录下创建密码文件,加入允许访问的用户。(此用户和系统用户无关)
[root@centos admin]# /usr/local/apache2/bin/htpasswd  -c  /usr/local/apache2/htdocs/admin/admin.passwd  test1  #第一个用户使用 -c参数
New password:
Re-type new password:
Adding password for user test1
[root@centos admin]# /usr/local/apache2/bin/htpasswd -m /usr/local/apache2/htdocs/admin/admin.passwd test2 #再添加用户则使用 -m参数
New password:
Re-type new password:
Adding password for user test2
4、重启apache
[root@centos admin]# /usr/local/apache2/bin/apachectl -t
[root@centos admin]# /usr/local/apache2/bin/apachectl restart
5、访问

三、虚拟主机实验

虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。 虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。

虚拟主机的分类:

基于 IP 的虚拟主机:一台服务器,多个 ip,搭建多个网站

基于端口的虚拟主机:一台服务器,一个 ip,搭建多个网站,每个网络使用不同端口访问

基于域名的虚拟主机:一台服务器,一个 ip,搭建多个网站,每个网站使用不同域名访问(最常用)

1、准备两个域名
www.qq.com
www.bb.com
2、修改主配置文件
[root@centos admin]# vim /usr/local/apache2/etc/httpd.conf
Include etc/extra/httpd-vhosts.conf(大约在485行,取消注释)
3、修改子配置文件
[root@centos admin]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<Directory "/usr/local/apache2/htdocs/qq"> #目录权限
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost 20.20.20.21:80> #虚拟主机配置
ServerAdmin 2829507692@qq.com
DocumentRoot "/usr/local/apache2/htdocs/qq"
ServerName www.qq.com
ErrorLog "logs/qq-error_log"
CustomLog "logs/qq-access_log" common
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/bb">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost 20.20.20.21:80>
ServerAdmin 2829507692@qq.com
DocumentRoot "/usr/local/apache2/htdocs/bb"
ServerName www.bb.com
ErrorLog "logs/bb-error_log"
CustomLog "logs/bb-access_log" common
</VirtualHost>
4、创建目录,并写入内容。
[root@centos admin]# mkdir /usr/local/apache2/htdocs/{qq,bb}
[root@centos admin]# echo thie is qq >/usr/local/apache2/htdocs/qq/index.html
[root@centos admin]# echo thie is bb >/usr/local/apache2/htdocs/bb/index.html
5、修改windows hosts文件,进行访问测试
20.20.20.21 www.qq.com
20.20.20.21 www.bb.com
6、访问



四、域名跳转实验

一个站点难免会有多个域名,而多个域名总得有一个主次,比如我的网站可以用两个域名访问: www.qq.com 和 www.bb.com 但大家发现不管我用哪个域名访问,最终都会跳转到 www.qq.com 上 来。这个行为就叫做域名跳转。

1、编辑主配置文件
[root@centos admin]# vim /usr/local/apache2/etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so(大学约在153行,取消注释)
2、修改虚拟主机配置文件
root@centos admin]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<Directory "/usr/local/apache2/htdocs/bb">
Options Indexes FollowSymLinks
AllowOverride All #修改此处,在认证文件中,进行跳转。
Require all granted
</Directory>
<VirtualHost 20.20.20.21:80>
ServerAdmin 2829507692@qq.com
DocumentRoot "/usr/local/apache2/htdocs/bb"
ServerName www.bb.com
ErrorLog "logs/bb-error_log"
CustomLog "logs/bb-access_log" common
</VirtualHost>
3、创建规则匹配文件
[root@centos admin]# vim /usr/local/apache2/htdocs/bb/.htaccess
RewriteEngine on # 开启rewrite功能
RewriteCond %{HTTP_HOST} ^www.bb.com # 把以www.bb.com 开头的内容赋值给HTTP_HOST变量
RewriteRule ^(.*)$ http://www.qq.com/$1 [R=permanent,L]
# ^(.*)$ 指代客户端要访问的资源
# $1 把 .* 所指代的内容赋值到$1变量中
# R=permanent 永久重定向 = 301
# L 指定该规则为最后一条生效的规则,以后的不再生效
4、重启,访问
[root@centos ~]# /usr/local/apache2/bin/apachectl restart

apache相关实验-1的更多相关文章

  1. apache相关实验-2

    一.Apache+openssl 实现 https HTTPS(全称:Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的 HTTP 通道,简单 ...

  2. tomcat相关实验

    tomcat相关实验 1.实现LNT 同主机实现 1.安装并启动tomcat 1)OpenJDK的安装 yum install java-1.8.0-openjdk-devel.x86_64 确定JD ...

  3. nginx介绍及相关实验

    一.nginx介绍 1.nginx简介 Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP 服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 R ...

  4. MIT Molecular Biology 笔记4 DNA相关实验

    视频  https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...

  5. col标签的相关实验

    col上有width属性,如果对应值没有单位,默认是像素 <!DOCTYPE html> <html> <head> <title>col相关实验< ...

  6. apache相关补充

    apache相关补充 sendfile机制 1)不用sendfile的传统网络传输过程: read(file, tmp_buf, len) write(socket, tmp_buf, len) 2) ...

  7. rsync 服务介绍及相关实验

    一.rsync 简介 rsync 是类 unix 系统下的数据镜像备份工具.一款支持快速完全备份和增量备份的工具,支持本 地复制,远程同步等,类似于 scp 命令:rsync 命令在同步文件之前要先登 ...

  8. 8. apache服务实验笔记

    Apache服务器 一 简介 1 www:world  wide  web 万维网 http 协议: 超文本传输协议 HTML语言: 超文本标识语言 2 URL:统一资源定位 协议+域名:端口+网页文 ...

  9. LAPM 相关实验01

    目录 lab1 静态.动态资源的区别lab2 部署phpMyadminlab3 部署wordpresslab4 编译安装php-Xcache加速器lab5 fcgi实现lamp lab1 静态.动态资 ...

随机推荐

  1. 深度解读Helm 3: 犹抱琵琶半遮面

    自去年年初开始放风Helm v3将要开始开发,到去年年底KubeConn 上海被一堆人追问到底啥时候发版本.今年五月份,Helm v3 终于发布了第一个alpha版本,让我们来一窥新版本的Helm 到 ...

  2. @总结 - 10@ Miller-Rabin素性测试与Pollard-Rho因数分解

    目录 @1 - 素性测试:Miller-Rabin算法@ @1.1 - 算法来源@ @1.2 - 算法描述@ @1.3 - 算法实现@ @2 - 因数分解:Pollard-Rho算法@ @2.0 - ...

  3. [\s\S]*?懒惰模式特殊情形

    通常理解[\s\S]*?X (X代表任意指定字符) 表示匹配任何字符的懒惰模式,一旦遇到后面出现的X便停止匹配,但实际不是如此,会尽可能的把后面的内容也匹配进去.如: 表达式 <tr[\s\S] ...

  4. iptables禁止QQ端口

    #iptables -D FORWARD -p udp --dport 8000 -j REJECT

  5. html选择题

    1.下面关于css样式和html样式的不同之处说法正确的是(A) A.html样式只影响应用它的文本和使用所选html样式创建的文本 B.css样式只可以设置文字字体样式        不仅仅能够设置 ...

  6. pip安装指定版本的应用

    可以在pip后使用 == 运算符指定版本号 pip install applicationName==version

  7. Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令

    引言: Tensorflow大名鼎鼎,这里不再赘述其为何物.这里讲描述在安装python包的时候碰到的“No matching distribution found for tensorflow”,其 ...

  8. Python--day37--多进程

    1,创建多进程(父进程和子进程) import os import time #多进程都要导入multiprocessing from multiprocessing import Process d ...

  9. 最长上升子序列问题 nlogn 实现算法的简述

    首先举个例子说明最长上升子序列(longest increasing subsequence 缩写 LIS): 1,4,6,2,3,7,5 中1,2,3,5 和1,4,6,7都是最长上升子序列,长度均 ...

  10. UVA 1343 - The Rotation Game-[IDA*迭代加深搜索]

    解题思路: 这是紫书上的一道题,一开始笔者按照书上的思路采用状态空间搜索,想了很多办法优化可是仍然超时,时间消耗大的原因是主要是: 1)状态转移代价很大,一次需要向八个方向寻找: 2)哈希表更新频繁: ...