把防火墙和selinux关闭,这样试验过程中就不用配置相关策略了。

实验一、安装apache,并提供服务

在RHEL1上
#yum install -y httpd
#echo basictest > /var/www/html/index.html
#systemctl restart httpd
#systemctl enable  httpd
#netstat -anplut| grep httpd
#firewall-cmd --permanent --add-service=http
#firewall-cmd --reload

浏览器访问测试:
http://192.168.100.1

实验二、软链接网站
#mkdir /local
#echo lxjtest > /local/index.html
#semanage fcontext -a -t httpd_sys_content_t '/local(/.*)?'
#restorecon -vvFR /local
#ln -s /local/ /var/www/html/soft

浏览器访问测试:
http://192.168.100.1/soft

实验三、基于域名的虚拟主机
#vi /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf    #模板文件---下面的内容可以从模板中拷贝
# mkdir /var/www/lxj
# mkdir /var/www/lxj2
# echo lxj1 >/var/www/lxj/index.html
# echo lxj2 >/var/www/lxj2/index.html

#默认网站/var/www/html的配置

# vi /etc/httpd/conf.d/.conf
<VirtualHost 192.168.100.1:>
ServerAdmin root@rusky.com
DocumentRoot "/var/www/html"
ServerName www.rusky.com
ErrorLog "/var/log/httpd/192.168.100.1-error_log"
CustomLog "/var/log/httpd/192.168.100.1-access_log" comon
</VirtualHost>

#域名www.lxj.com的配置

# vi /etc/httpd/conf.d/lxj.conf
<VirtualHost 192.168.100.1:>
ServerAdmin root@ruksy.com
DocumentRoot "/var/www/lxj"
ServerName www.lxj.com
Errorlog "/var/log/httpd/www.lxj.com-error_log"
CustomLog "/var/log/httpd/www.lxj2.com-access_log" common
</VirtualHost>

#域名www.lxj2.com的配置

# cp /etc/httpd/conf.d/lxj.conf /etc/httpd/conf.d/lxj2.conf
# vi /etc/httpd/conf.d/lxj2.conf
<VirtualHost 192.168.100.1:>
ServerAdmin root@ruksy.com
DocumentRoot "/var/www/lxj2"
ServerName www.lxj2.com
Errorlog "/var/log/httpd/www.lxj2.com-error_log"
CustomLog "/var/log/httpd/www.lxj2.com-access_log" common
</VirtualHost>

#systemctl restart httpd

浏览器访问测试:
http://www.rusky.com/  --默认网站,内容为basictest
http://www.lxj.com     --lxj网站,内容为lxj
http://www.lxj2.com    --lxj2网站,内容为lxj2

说明:必须配置DNS域名解析。请参考http://www.cnblogs.com/rusking/p/7581877.html
或者如果你不想配置DNS域名解析,你可以直接修改物理机C:\Windows\System32\drivers\etc\hosts文件,添加如下内容:
192.168.100.1        www.rusky.com
192.168.100.1        www.lxj.com
192.168.100.1        www.lxj2.com
这样,你的物理机就可以ping通上面三个域名了,你可以直接使用物理机的浏览器来进行访问测试。

实验四、基于IP的虚拟主机
添加一块网卡,设置IP为192.168.100.11/24

[root@rhel1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
enp0s3 -4e4e-403c-ad25-374704d6f6f1 --ethernet enp0s3
virbr0 46056c19-c40a-40cc-a0c5-296cf7049362 bridge virbr0
[root@rhel1 ~]# nmcli device show | grep -i device
GENERAL.DEVICE: virbr0
GENERAL.DEVICE: enp0s3
GENERAL.DEVICE: enp0s8
GENERAL.DEVICE: lo
GENERAL.DEVICE: virbr0-nic

添加了一块网卡enp0s8。

添加配置文件,并配置网络参数

[root@rhel1 ~]# nmcli connection add type ethernet con-name enp0s8file ifname enp0s8
[root@rhel1 ~]# nmcli connection modify enp0s8file ipv4.method manual ipv4.addresses 192.168.100.11/ ipv4.gateway 192.168.100.100 autoconnect yes ipv4.dns 192.168.100.1
[root@rhel1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
enp0s3 -4e4e-403c-ad25-374704d6f6f1 --ethernet enp0s3
enp0s8file 982798e1-2f91-43f1--5d0ea9839440 --ethernet enp0s8
virbr0 46056c19-c40a-40cc-a0c5-296cf7049362 bridge virbr0
[root@rhel1 ~]# nmcli connection down enp0s8file
[root@rhel1 ~]# nmcli connection up enp0s8file

添加配置文件:

[root@rhel1 ~]# vi /etc/httpd/conf.d/.conf
<VirtualHost 192.168.100.11:>
DocumentRoot "/var/www/test11" --其它参数可以不写,有这两行参数就可以了。
ServerName 192.168.100.11
</VirtualHost>

[root@rhel1 ~]# mkdir /var/www/test11
[root@rhel1 ~]# echo test11 >/var/www/test11/index.html

systemctl restart httpd

浏览器访问测试:
http://192.168.100.1  ---访问默认网站,显示basictest内容
http://192.168.100.11 ---访问test11网站,显示 test11 内容。

实验五、基于端口的虚拟主机

[root@rhel1 ~]# semanage port -l | grep http
http_cache_port_t tcp , , , -
http_cache_port_t udp
http_port_t tcp , , , , , , ,
pegasus_http_port_t tcp
pegasus_https_port_t tcp

[root@rhel1 ~]# semanage port -a -t http_port_t -p tcp 8888
[root@rhel1 ~]# firewall-cmd --add-port=8888/tcp --permanent
[root@rhel1 ~]#firewall-cmd --reload
[root@rhel1 ~]#vi /etc/httpd/conf/httpd.conf
Listen 8888    #增加一行,监听8888端口,这一行也可以添加到11.conf配置文件的开头;注意,如果要求开启tls加密,则修改为 Listen 8888 https。

[root@rhel1 ~]# mkdir /var/www/testport8888
[root@rhel1 ~]# echo 88888888 >/var/www/testport8888/index.html

#直接修改上面的配置文件11.conf来进行测试

[root@rhel1 conf.d]# vi .conf
<VirtualHost 192.168.100.11:>
ServerAdmin root@ruksy.com
DocumentRoot "/var/www/test11"
ServerName 192.168.100.11
</VirtualHost> <VirtualHost 192.168.100.11:>
ServerAdmin root@ruksy.com
DocumentRoot "/var/www/testport8888"
ServerName 192.168.100.11
</VirtualHost>

#systemctl restart httpd

浏览器访问测试:
http://192.168.100.1        ---默认80端口,显示test11内容。
http://192.168.100.11:8888  --显示内容为:88888888

实验六、LAMP
#yum install -y php* mariadb*
#unzip Discuz.zip     ---下载地址:http://www.discuz.net/forum.php 开源的PHP论坛
#cp -rf upload/* /var/www/Discuz/
#semanage fcontext -l | grep http | grep rw
#chcon -R -t httpd_sys_rw_content_t /var/www/Discuz/
#chown -R apache:apache /var/www/Discuz/
#systemctl restart mariadb
#systemctl enable mariadb
#mysqladmin -u root password '123456'
#systemctl restart httpd

浏览器访问测试:
http://192.168.100.1/Discuz    #需要输入数据库密码123456,更改表前缀

实验七、Alias
还原RHEL1虚拟机到初始化环境。
#mkdir /var/www/lxj
#mkdir /var/www/lxj2
#echo lxj11111 >/var/www/lxj/index.html
#echo lxj22222 >/var/www/lxj2/index.html

# vi /etc/httpd/conf.d/.conf
<Virtualhost *:>
Servername 192.168.100.1
Documentroot /var/www/lxj
Alias /lxj2 /var/www/lxj2
</Virtualhost>
<Directory /lxj2> #增加,添加对文件夹/lxj2的设置
AllowOverride none #增加,不允许覆盖写入
Require all granted #增加,允许所有人访问
</Directory>

访问测试:
http://192.168.100.1
结果:进入默认网站,显示内容为lxj11111
http://192.168.100.1/lxj2
结果:进入lxj2目录,显示内容为lxj22222

实验八-调用脚本
创建三个测试脚本:shell.sh、perl.pl、python.py
#vim /var/www/cgi-bin/shell.sh

#!/bin/bash
echo -en "Content-Type: text/html; charset=UTF-8\n\n";
date +%c

#vim /var/www/cgi-bin/perl.pl

#!/usr/bin/perl
print "Content-Type: text/html; charset=UTF-8\n\n";
$now=localtime();
print "$now\n";

#yum install -y mod_wsgi       #apache调用python脚本时需要用到这个模块

#vim /var/www/cgi-bin/python.py

#!/usr/bin/env python
import time def application (environ, start_response):
response_body = 'UNIX EPOCH time is now: %s\n' % time.time()
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', ''),
('Content-Length', str(len(response_body)))]
start_response(status, response_headers)
return [response_body]

#chmod a+x /var/www/cgi-bin/shell.sh
#chmod a+x /var/www/cgi-bin/perl.pl
#shell和pear必须有执行权限,python调用模块可以不加执行权限

#vim /etc/httpd/conf.d/testscript.conf

<VirtualHost *:>
ServerAdmin root@rusky.com
DocumentRoot /var/www/html
ServerName 192.168.100.1
ErrorLog "/var/log/httpd/192.168.100.1-error_log"
CustomLog "/var/log/httpd/192.168.100.1-access_log" common
<IfModule alias_module> #增加
ScriptAlias /jiaoben/ "/var/www/cgi-bin/" #增加,支持shell和perl。 /jiaoben是虚拟目录,对应后面的脚本所在的目录
</IfModule> #增加
WSGIScriptAlias /python /var/www/cgi-bin #增加,支持python。/python也是虚拟目录
</VirtualHost>

#systemctl restart httpd

访问测试:
http://192.168.100.1/jiaoben/perl.pl
http://192.168.100.1/jiaoben/shell.sh
http://192.168.100.1/python/python.py

实验九-拒绝访问
#vim /etc/httpd/conf.d/testscript.conf --添加如下内容

<Directory "/var/www/html">
order allow,deny #顺序:先允许,再拒绝
allow from all
deny from 192.168.100.2 #网段采用192.168.100
</Directory>

#systemctl restart httpd

测试:
192.168.100.2 不可以访问http://192.168.100.1/index.html,其他机器都可以访问

其它一些例子
Order   deny,allow //默认充许所有主机访问
Deny  from  192.168.0.100  //单独禁止

Order deny,allow
  allow from all
  deny from 219.204.253.8
  #全部都可以通行
-------------------------------
Order deny,allow
  deny from 219.204.253.8
  allow from all
  #全部都可以通行
-------------------------------
Order allow,deny
  deny from 219.204.253.8
  allow from all
  #只有219.204.253.8不能通行
-------------------------------
Order allow,deny
  allow from all
  deny from 219.204.253.8
  #只有219.204.253.8不能通行
-------------------------------
  -------------------------------
Order allow,deny
  deny from all
  allow from 219.204.253.8
  #全部都不能通行
-------------------------------
Order allow,deny
  allow from 219.204.253.8
  deny from all
  #全部都不能通行
-------------------------------
Order deny,allow
  allow from 219.204.253.8
  deny from all
  #只允许219.204.253.8通行
-------------------------------
Order deny,allow
  deny from all
  allow from 219.204.253.8
  #只允许219.204.253.8通行
-------------------------------
  --------------------------------
Order deny,allow
  #全部都可以通行(默认的)
-------------------------------
Order allow,deny
  #全部都不能通行(默认的)
-------------------------------
Order allow,deny
  deny from all
  #全部都不能通行
-------------------------------
Order deny,allow
  deny from all
  #全部都不能通行
-------------------------------
对于上面两种情况,如果换成allow from all,则全部都可以通行!
-------------------------------
Order deny,allow
  deny from 219.204.253.8
  #只有219.204.253.8不能通行
-------------------------------
Order allow,deny
  deny from 219.204.253.8
  #全部都不能通行
-------------------------------
Order allow,deny
  allow from 219.204.253.8
  #只允许219.204.253.8通行
-------------------------------
Order deny,allow
  allow from 219.204.253.8
  #全部都可以通行
 
实验十、SSL加密
在RHEL1上制作用于认证网站的证书和key
#cd /etc/pki/tls/certs
#make lxjtest.crt

Enter pass phrase:                        #输入123.com
Verifying - Enter pass phrase: #输入123.com
Enter pass phrase for lxjtest.key: #输入123.com
Country Name ( letter code) [XX]: #输入CN
State or Province Name (full name) []: #输入BEIJING
Locality Name (eg, city) [Default City]: #输入BEIJING
Organization Name (eg, company) [Default Company Ltd]: #输入REDHAT
Organizational Unit Name (eg, section) []: #输入WEB
Common Name (eg, your name or your server's hostname) []: #输入www.rusky.com

之后,再该目录下生成两个文件:证书 lxjtest.crt 和密钥 lxjtest.key
#cp  lxjtest.key  /etc/pki/tls/private/lxjtest.key    #复制之后,可以把原来的lxjtest.key文件删除。
#相当于已经有了CA中心,并且CA中心已经颁发了证书lxjtest.crt,一般证书保存在certs文件夹下,密钥保存在private文件夹下

#yum install -y mod_ssl.x86_64    #安装ssl模块
#httpd -M | grep -i mod_ssl    #查看apache加载的模块
#如果报错AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message,一般是域名解析的错误,可以添加hosts记录,或者添加DNS记录,并更改配置文件的ServerName内容

#vim /etc/httpd/conf.d/ssl.conf
SSLEngine off        #更改,今后使用对每个网站的单独引擎(默认为on,)

#firewall-cmd --permanent --add-service=https
#firewall-cmd --reload

#mkdir /var/www/443
#echo html > /var/www/html/index.html
#echo 443 > /var/www/443/index.html
#cat /etc/httpd/conf.d/ssl.conf | grep -i ^ssl    #复制尾部5行

#vim /etc/httpd/conf.d/0.conf

<VirtualHost *:>
DocumentRoot /var/www/html
ServerName www.rusky.com
</VirtualHost>

#vim /etc/httpd/conf.d/443.conf        #增加加密的www.rusky.com网站,新增行可用cat /etc/httpd/conf.d/ssl.conf | grep ^SSL | tail -n 5获得

<VirtualHost *:>
DocumentRoot /var/www/
ServerName www.rusky.com #必须和证书输入的域名一致
SSLEngine on #激活引擎
SSLProtocol all -SSLv2 -SSLv3 #除了-SSLv2和-SSLv3协议,这两个协议不安全。
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /etc/pki/tls/cert/lxjtest.crt #证书位置
SSLCertificateKeyFile /etc/pki/tls/private/lxjtest.key #密钥位置
</VirtualHost>

访问测试:
http://www.rusky.com/
https://www.rusky.com/

实验十一、访问http网站自动转为https
# vi 443.conf

<Virtualhost *:>
Servername www.rusky.com
Documentroot /var/www/html
RewriteEngine on
RewriteRule ^/(.*) https://%{HTTP_HOST}$1 [L]
</Virtualhost> <Virtualhost *:>
DocumentRoot /var/www/443test
ServerName www.rusky.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLV3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/lxjtest.crt
SSLCertificateKeyFile /etc/pki/tls/private/lxjtest.key
</Virtualhost>

访问测试:
http://www.rusky.com    #自动重定向为https://www.rusky.com

RHEL7 Apache 服务测试的更多相关文章

  1. 快速部署Apache服务静态网站

    Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充, ...

  2. resin服务之二----整合resin+Apache服务

    整合resin+Apache服务 1.为什么要整合Apache和resin? a. 早期的resin,tomcat对httpd服务支持不好. b.  tomcat,resin对rewrite,expi ...

  3. 第10章 使用Apache服务部署静态网站

    章节简述: 本章节中通过对比目前热门的网站服务程序来说明Apache服务程序的优势,并新增主机空间选购技巧小节. 了解SELinux服务的3种工作模式,小心谨慎的使用semanage命令和setseb ...

  4. Apache服务(基于IP地址,主机名,端口号)

    安装Apache服务程序 需要注意apache服务程序的软件包名称叫做httpd,因此直接执行yum install apache则是错误的. [root@liuxuanke-hbza ~]# yum ...

  5. 初阶项目一-集成一套linux系统:红帽系统,LVM分区,Apache服务,MySQL服务,数据定时备份脚本

    目录 一.项目目标 二.实施工具 三.项目实施计划 四.安装rhel7.5操作系统 4.1 配置虚拟机 4.2 安装操作系统 4.3 系统配置 4.3.1 网络配置 4.3.2 修改主机名 4.3.3 ...

  6. 8. apache服务实验笔记

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

  7. RHEL7-使用Apache服务部署静态网站

    1. 安装Apache服务程序 1.1 在虚拟机中选中光盘镜像,并设置连接 1.2 将光盘设备挂载到/media/cdrom目录 [root@localhost ~]# mkdir -p /media ...

  8. 《Apache服务之php/perl/cgi语言的支持》RHEL6——服务的优先级

    安装php软件包: 安装文本浏览器 安装apache的帮助文档: 测试下是否ok 启动Apache服务关闭火墙: 编辑一个php测试页测试下: perl语言包默认系统已经安装了,直接测试下: Apac ...

  9. Apache服务

    Apache服务的安装: Apache服务程序的软件包名称是:httpd 安装方法: rpm软件包安装.源码编译安装.yum安装 yum install httpd 安装完成后启动: revice h ...

随机推荐

  1. rank,dense_rank,row_number使用和区别

    rank,dense_rank,row_number区别 一:语法(用法):     rank() over([partition by col1] order by col2)      dense ...

  2. iOS:viewController 和 view 的生命周期、不错的代码设计风格

    一.介绍: viwe和viewController的生命周期是最基本的知识,如果很好地理解它们的方法调用的执行顺序,就能很好地设计代码的风格.这篇博客转载自:http://www.cnblogs.co ...

  3. Android实现在线更新的过程案例

    一.更新软件的准备 在线更新软件的话需要我们有签名的应用,我们需要把签过名之后的软件放入到服务器中,我的如下:  其中apk是有签名的更新版本! updateinfo.html代码如下: {" ...

  4. CSS-返回顶部代码

    现在的网站基本上都是长页面,多的有四五屏,少的话也有两三屏,页面太长有的时候为了提升用户体验,会在页面右边出现一个回到顶部的按钮,这样能快速回到顶部,以免在滑动页面出现视觉屏幕,回到顶部一般有四种方式 ...

  5. Centos7 Mysql 双机热备实现数据库高可用

    mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器. 双机热备的条件是双机mysql版本必须一致. 服务器分 ...

  6. JavaScript 实现打印,打印预览,打印设置

    WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 <object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CL ...

  7. 高德地图JS-API (超简单Get新技能√)

    上几章我们研究了百度地图SDK的用法,虽然不难但是配置起来也是相当的繁琐,现在高德LBS开放平台推出了基于HTML5的地图组件,我们可以通过WebView直接用URL 以GET方式进行请求就可以实现位 ...

  8. MySQL在线大表DDL操作 (转)

    http://www.cnblogs.com/janehoo/p/5382474.html 线大表DDL操作的方法: 1.主从架构轮询修改 需要注意: a.主库会话级别的记录binglog的参数关闭 ...

  9. Spring(七):IOC&DI

    什么是IOC? IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源. 而应用了IOC之后, ...

  10. 自己定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,&quot;掏粪男孩Gif&quot;顺便再提提onWindowFocusChanged)

    转载请注明出处:王亟亟的大牛之路 之前在绘画的过程中提到了静态的旋转啊,缩放啊,平移等一些效果.那么自己定义的View当然也有动态的效果也就是我们的Animation.经常使用的有三种 View An ...