RHCE题库中apache实例讲解

apache实例

  • 实例一:
      • 需求
      • 步骤
      • 验证
  • 实例二
      • 需求
      • 步骤
      • 验证
  • 实例三:
      • 需求
      • 步骤
      • 验证
  • 实例四:
      • 需求
      • 步骤
      • 验证
  • 实例五:
      • 需求
      • 步骤
      • 验证

实例一:

需求

  • 在server上配置一个web站点http://server.example.com;
  • 从http://ldap.example.com/pub/example.html下载文件,并重名为index.html,不要修改文件内容;
  • 将文件index.html拷贝到您的DocumentRoot目录下;
  • 来自于exampl.com的客户端可以访问该web服务器

步骤

	//安装apache
	[root@server30 ~]# yum -y install httpd


	//进入到这个目录下,将指定文件下载下来,并重命名
	[root@server30 ~]# cd /var/www/html/
	[root@server30 html]# wget http://ldap.example.com/pub/example.html
	[root@server30 html]# ls
	example.html
	[root@server30 html]# mv example.html index.html
	[root@server30 html]# ls
	index.html


	//设置防火墙,仅允许172.16.30.0/24网段的主机访问
	[root@server30 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.16.30.0/24 service name=http accept' --permanent 
	success
	[root@server30 ~]# firewall-cmd --reload
	success


	//在服务端开启htppd服务,并设置为开机自动启动
	[root@server30 ~]# systemctl start httpd
	[root@server30 ~]# systemctl enable httpd
	ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

验证

RHCE题库中apache实例讲解_第1张图片


实例二

需求

  • 为站点http://server.example.com配置TLS加密;
  • 已签名证书从http://ldap.example.com/pub/server30.crt获取
  • 证书的秘钥从http://ldap.example.com/pub/server30.key获取
  • 证书的签名授权信息从http://ldap.example.com/pub/group30.crt获取

步骤

//首先安装一个软件包mod_ssl,然后到/etc/httpd/conf.d/ssl.conf下面进行配置
[root@server30 ~]# yum -y install mod_ssl


//按照需求,在指定目录中下载指定文件
[root@server30 ~]# cd /etc/pki/tls/certs/
[root@server30 certs]# wget http://ldap.example.com/pub/server30.crt
[root@server30 certs]# wget http://ldap.example.com/pub/group30.crt
[root@server30 certs]# cd ../private/
[root@server30 private]# wget http://ldap.example.com/pub/server30.key


//下载完成以后,编辑/etc/httpd/conf.d/ssl_conf,将证书名及秘钥名对应替换过来
[root@server30 ~]# vim /etc/httpd/conf.d/ssl.conf 


[root@server30 ~]# cat /etc/httpd/conf.d/ssl.conf |grep SSLCert
SSLCertificateFile /etc/pki/tls/certs/server30.crt		//替换后的
SSLCertificateKeyFile /etc/pki/tls/private/server30.key		//替换后的


[root@server30 ~]# cat /etc/httpd/conf.d/ssl.conf |grep SSLCA
SSLCACertificateFile /etc/pki/tls/certs/group30.crt		//替换后的


//设置防火墙,添加https规则
[root@server30 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.16.30.0/24 service name=https accept' --permanent 
success
[root@server30 ~]# firewall-cmd --reload
success


//开启防火墙,重启服务
[root@server30 certs]# systemctl start firewalld
[root@server30 ~]# systemctl restart httpd

验证

在这里插入图片描述


实例三:

需求

  • 在server上扩展您的WEB服务器
  • 为站点http://www.example.com创建一个虚拟主机
  • 设置DocumentRoot为/var/www/html
  • 从http://ldap.example.com/pub/www.html下载文件,并重名为index.html,不要修改文件内容
  • 将文件index.html拷贝到DocumentRoot目录下
  • 确保floyd用户能够在/var/www/virtual下创建文件

步骤

//在/var/www下创建一个virtual/目录作为虚拟主机的DocumentRoot
[root@server30 www]# mkdir virtual


//将指定文件下载到/var/www/virtual目录下,并重命名
[root@server30 virtual]# wget http://ldap.example.com/pub/www.html
[root@server30 virtual]# mv www.html index.html 
[root@server30 virtual]# ls
index.html


//将/var/www目录下所有文件的属主属组都修改为apache,创建一个用户floyd,设置facl限制权限,
[root@server30 www]# chown -R apache.apache /var/www
[root@server30 www]# useradd floyd
[root@server30 www]# setfacl -m u:floyd:rwx virtual/


//在全局下查找虚拟主机的配置文件,并复制到本地,进行编辑
[root@server30 conf.d]# find / -name *vhost*
[root@server30 conf.d]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf .
[root@server30 conf.d]# vim httpd-vhosts.conf 
[root@server30 conf.d]# tail -9 httpd-vhosts.conf 
		//这是新添加的虚拟主机
    ServerAdmin www.example.com
    DocumentRoot "/var/www/virtual"


		//为了避免新添加的虚拟主机将原有主机给覆盖,所以还需要将原有主机的信息添加上去
    ServerAdmin server30.example.com
    DocumentRoot "/var/www/html"



//重启httpd服务
[root@server30 conf.d]# systemctl restart httpd

验证

  • 原本的主机并没有被覆盖,还能访问:
    RHCE题库中apache实例讲解_第2张图片

  • 新添加的虚拟主机也可以访问:
    RHCE题库中apache实例讲解_第3张图片

  • 用户floyd可以进入DocumentRoot,并创建文件

    [root@server30 ~]# su - floyd 
    Last login: Thu Jan  8 01:09:13 CST 2015 on pts/1
    [floyd@server30 ~]$ cd /var/www/virtual/
    [floyd@server30 virtual]$ touch aa
    [floyd@server30 virtual]$ ll
    total 4
    -rw-rw-r--. 1 floyd  floyd   0 Jan  8 01:31 aa
    -rw-r--r--. 1 apache apache 16 Nov 28 13:11 index.html
    [floyd@server30 virtual]$ 
    

实例四:

需求

  • 在您的server上web服务器的DocumentRoot目录下创建一个名为private的目录,从http://ldap.example.com/pub/private.html下载文件到这个目录,并重命名为index.html,不要修改文件内容。
  • 从server上,任何人都可以浏览private的内容,但是从其他系统不能访问这个目录的内容

步骤

//在/var/www/html下创建private目录,并将指定文件下载到此目录,并重名
[root@server30 html]# mkdir private
[root@server30 html]# cd private/
[root@server30 private]# wget http://ldap.example.com/pub/private.html
[root@server30 private]# mv private.html index.html


//修改http的主配置文件
[root@server30 private]# vim /etc/httpd/conf.d/httpd-vhosts.conf 

ServerAdmin server30.example.com
DocumentRoot "/var/www/html"


//添加以下信息到server30主机上

Require ip 172.16.30.130


验证

  • 因为只设置了服务端可访问,所以先在客户端验证:
    RHCE题库中apache实例讲解_第4张图片

  • 在服务端验证:
    RHCE题库中apache实例讲解_第5张图片


实例五:

需求

  • 动态内容由名为alt.example.com的虚拟主机提供
  • 虚拟主机侦听端口为8909
  • 从http://ldap.example.com/pub/webapp.wsgi下载一个脚本,然后放在适当的位置,不要修改文件内容
  • 客户端访问http://alt.example.com:8909时,应该接受动态生成的web页面
  • 此http://alt.example.com:8909必须能被example.com内所有的系统访问

步骤

//合适的位置是指,在/var/www目录下,创建一个新的目录wsgi,并下载指定文件,修改属主属组为apache
[root@server30 www]# mkdir wsgi
[root@server30 www]# cd wsgi/
[root@server30 wsgi]# wget http://ldap.example.com/pub/webapp.wsgi
[root@server30 www]# chown -R apache.apache wsgi/


//编辑虚拟主机服务的配置文件
[root@server30 www]# vim /etc/httpd/conf.d/httpd-vhosts.conf 
[root@server30 ~]# cat /etc/httpd/conf.d/httpd-vhosts.conf 
//添加以下内容
Listen 8909				

   	WSGIScriptAlias / "/var/www/wsgi/webapp.wsgi"
	 ServerAdmin alt.example.com



//下载mod_wsgi*
[root@server30 www]# yum -y install mod_wsgi*
此时httpd服务启动不了
[root@server30 www]# systemctl stop httpd
[root@server30 www]# systemctl start httpd
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
是因为8909端口不是网页的默认端口,selinux并未配置。


//设置selinux,将8909端口号添加进去
[root@server30 ~]# semanage port -a -t http_port_t -p tcp 8909
[root@server30 ~]# ss -antl |grep 8909
LISTEN     0      128                      :::8909                    :::*   


//设置防火墙规则
[root@server30 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.16.30.0/24 port port=8909 protocol=tcp accept' --permanent 
success
[root@server30 ~]# firewall-cmd --reload
success


//重新启动httpd服务,并设置开机自动启动
[root@server30 ~]# systemctl start httpd
[root@server30 ~]# systemctl enable httpd

验证

[root@server30 ~]# ping alt.example.com
PING alt.example.com (172.16.30.130) 56(84) bytes of data.
64 bytes from server30.example.com (172.16.30.130): icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from www.example.com (172.16.30.130): icmp_seq=2 ttl=64 time=0.038 ms

RHCE题库中apache实例讲解_第6张图片

你可能感兴趣的:(Linux服务)