阅读 129

HTTP服务基础(Apache)

基于 B/S (Browser/Server)架构的网页服务

– 服务端提供网页

– 浏览器下载并显示网页

? Hyper Text Transfer Protocol,超文本传输协议(http)

? Hyper Text Markup Language,超文本标记语言(html)

 http 协议的端口:80

默认网页文件目录:/var/www/html

默认网页文件的名字: index.html 

一、搭建基本的Web服务

虚拟机Server0

1.安装软件httpd

2.书写一个页面文件

# echo  ‘

First Web‘  >  /var/www/html/index.html

3.重起httpd服务,设置开机自起动

客户端访问测试:

虚拟机desktop0

# firefox 172.25.0.11

######################################################

? 提供的默认配置

– Listen: 监听地址:端口(80)

– ServerName: 本站点注册的DNS名称(空缺)

– DocumentRoot: 网页根目录(/var/www/html)

– DirectoryIndex: 起始页/首页文件名(index.html)

#####################################################

ServerName: 本站点注册的DNS名称(空缺)

 DNS服务器:classroom.example.com

   server0.example.com

   www0.example.com 

   webapp0.example.com 

虚拟机Server:

1.修改配置文件/etc/httpd/conf/httpd.conf

  ServerName server0.example.com:80    #把开头的#去掉

2.重起httpd服务

虚拟机Desktop:

 # firefox server0.example.com

#######################################################

– DocumentRoot: 网页文件的根目录(/var/www/html)

虚拟机Server0

1.修改配置文件 /etc/httpd/conf/httpd.conf

 DocumentRoot   "/var/www/myweb"

# mkdir /var/www/myweb

# echo ‘

wo shi myweb‘ > /var/www/myweb/index.html

# systemctl restart httpd

虚拟机Desktop0

# firefox server0.example.com

##############################################

 网页文件的根目录  DocumentRoot  /var/www/myweb

 客户端  firefox 172.25.0.11----》服务端:/var/www/myweb

 客户端  firefox 172.25.0.11/test----》/var/www/myweb/test/index.html

##################################################

虚拟Web主机

  作用:让一台Web服务器,提供多个页面

  搭建方式:

    1.基于域名的虚拟Web

    2.基于端口的虚拟Web

    3.基于IP地址的虚拟Web

############################################

基于域名的虚拟Web

 容器类型的配置

 

   ServerName   此站点的DNS名称

   DocumentRoot 此站点的网页根目录

 

 

   ServerName   www.qq.com

   DocumentRoot /var/www/qq

 

 

   ServerName   www.baidu.com

   DocumentRoot /var/www/baidu

 

? 配置文件路径

– /etc/httpd/conf/httpd.conf

– /etc/httpd/conf.d/*.conf

虚拟机Server0:

1.修改调用配置文件

[root@server0 ~]# vim  /etc/httpd/conf.d/nsd01.conf

  ServerName   www0.example.com

  DocumentRoot  /var/www/nsd01

  ServerName   webapp0.example.com

  DocumentRoot  /var/www/nsd02

# mkdir  /var/www/nsd01  /var/www/nsd02

# echo ‘

wo shi nsd01‘ > /var/www/nsd01/index.html

# echo ‘

wo shi nsd02‘ > /var/www/nsd02/index.html

2.重起httpd服务

注意:一旦使用了虚拟Web主机功能,所有的站点都必须使用虚拟Web来实现

书写配置文件,完成虚拟Web主机的配置

1. 追加写入/etc/httpd/conf.d/nsd01.conf

 

   ServerName   server0.example.com

   DocumentRoot  /var/www/myweb

 

2.重起httpd服务

#####################################################

网页内容访问

– 每个文件夹自动继承其父目录的ACL访问权限

– 除非针对子目录有明确设置

all granted  允许所有

all denied   拒绝所有

    .. ..

   Require all denied|granted

   Require ip IP或网段地址 .. ..

  在 Web 网站 http://server0.example.com 的

 DocumentRoot 目录下创建一个名为 private 的子目录,要求如下:

虚拟机Server0:

1.创建目录,写入网页文件

# mkdir /var/www/myweb/private

# echo ‘

wo shi private‘ > /var/www/myweb/private/index.html

2.书写新的调用配置文件/etc/httpd/conf.d/nsd02.conf

   #针对路径

    Require ip 172.25.0.11              #仅允许172.25.0.11

3.重起httpd服务

虚拟机Desktop0: firefox  server0.example.com/private

虚拟机Server0: firefox  server0.example.com/private

#####################################################

案例4:使用自定Web根目录

调整 Web 站点 http://server0.example.com 的网页目录,要求如下:

1) 新建目录 /webroot,作为此站点新的网页文件根目录

 # mkdir  /webroot

 # echo   ‘

wo  shi  Webroot‘  >  /webroot/index.html

2) 修改配置文件/etc/httpd/conf.d/nsd01.conf

  ServerName    server0.example.com

  DocumentRoot  /webroot             #修改网页文件根目录

3) 追加写入 /etc/httpd/conf.d/nsd02.conf

    Require all granted      #允许所有

4)SELinux安全上下文(标识,标签)

– chcon [-R] --reference=模板目录    新目录

# ls -Zd /webroot/      #查看目录标签值

# chcon -R  --reference=/var/www    /webroot/

# ls -Zd /webroot/

5) 重起httpd服务

###################################################

部署动态网站 

  静态的网站

? 服务端的原始网页 = 浏览器访问到的网页

– 由Web服务软件处理所有请求

– 文本(txt/html)、图片(jpg/png)等静态资源

  动态的网站

? 服务端的原始网页 ≠ 浏览器访问到的网页

– 由Web服务软件接受请求,动态程序转后端模块处理

– PHP网页、Python网页、JSP网页......

虚拟机Server0:

1.部署Python动态页面文件

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

   查看 webapp0.example.com的DocumentRoot目录在那里

# cd /var/www/nsd02

# wget http://classroom.example.com/pub/materials/

       webinfo.wsgi

2. 方便用户访问,页面的跳转

 当客户端访问webapp0.example.com-》/var/www/nsd02/webinfo.wsgi

修改配置文件 /etc/httpd/conf.d/nsd01.conf

  ServerName   webapp0.example.com

  DocumentRoot  /var/www/nsd02

  Alias  /   /var/www/nsd02/webinfo.wsgi

  #当检测到客户端访问网页文件根目录时      跳转页面到webinfo.wsgi

  重起httpd服务,客户端验证:firefox   webapp0.example.com  

3. 安装一个可以解释Python页面程序,配置解释该页面

[root@server0 /]# yum  -y  install  mod_wsgi

[root@server0 /]# rpm  -ql  mod_wsgi  #列出软件安装清单

 Unix时间戳:从1970-1-1  0:0:0算起,到达当前时间经过的秒数

[root@server0 /]# vim /etc/httpd/conf.d/nsd01.conf

  ServerName   webapp0.example.com

  DocumentRoot  /var/www/nsd02

  WsgiScriptAlias /  /var/www/nsd02/webinfo.wsgi

[root@server0 /]# systemctl  restart  httpd

4.修改端口为8909,修改配置文件 /etc/httpd/conf.d/nsd01.conf

 Listen  8909

 

   ServerName   webapp0.example.com

   DocumentRoot   /var/www/nsd02

   WsgiScriptAlias  /  /var/www/nsd02/webinfo.wsgi

 

5. SELinux 非默认端口的开放 

 # semanage port -l | grep http

 # semanage port -a -t http_port_t  -p tcp 8909

    -a添加  -t类型  -p协议

6.重起httpd服务

客户端访问测试 # firefox  webapp0.example.com:8909

######################################################

安全Web服务器 

   https协议: 443 端口

虚拟Server0:

/etc/pki/tls/certs/  网站证书、根证书(ca)

/etc/pki/tls/private/  私钥(key)

1.部署 网站证书(营业执照)

# cd  /etc/pki/tls/certs/

# wget http://classroom.example.com/pub/tls/certs/ server0.crt

# ls

2.部署  根证书(公安局信息,证书颁发机构的信息)

# cd  /etc/pki/tls/certs/

# wget  http://classroom.example.com/pub/example-ca.crt

# ls

3.部署 私钥 (用于解密)

# cd /etc/pki/tls/private/

# wget  http://classroom.example.com/pub/tls/private/server0.key

# ls

4.安装可以支持加密Web的软件

[root@server0 /]# yum -y install mod_ssl

[root@server0 /]# rpm -q mod_ssl

5.修改配置文件

[root@server0 /]# vim  /etc/httpd/conf.d/ssl.conf

      末行模式下  :set  nu   #添加行号

 59 DocumentRoot  "/var/www/html"

 60 ServerName    server0.example.com:443

#指定网站证书

100 SSLCertificateFile  /etc/pki/tls/certs/server0.crt

#指定密钥

107 SSLCertificateKeyFile /etc/pki/tls/private/server0.key

#指定根证书

122 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt

6.重起服务

[root@server0 /]# systemctl  restart  httpd

原文:https://www.cnblogs.com/momo6656/p/14823095.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐