首页 > Web开发 > 详细

HTTP服务基础(Apache)

时间:2021-05-28 19:20:29      阅读:23      评论:0      收藏:0      [点我收藏+]

基于 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  ‘<h1>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 ‘<h1>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

 容器类型的配置

 <VirtualHost  IP地址:端口>

   ServerName   此站点的DNS名称

   DocumentRoot 此站点的网页根目录

 </VirtualHost>

 <VirtualHost  *:80>

   ServerName   www.qq.com

   DocumentRoot /var/www/qq

 </VirtualHost>

 <VirtualHost  *:80>

   ServerName   www.baidu.com

   DocumentRoot /var/www/baidu

 </VirtualHost>

? 配置文件路径

– /etc/httpd/conf/httpd.conf

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

虚拟机Server0:

1.修改调用配置文件

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

<VirtualHost  *:80>

  ServerName   www0.example.com

  DocumentRoot  /var/www/nsd01

</VirtualHost>

<VirtualHost  *:80>

  ServerName   webapp0.example.com

  DocumentRoot  /var/www/nsd02

</VirtualHost>

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

# echo ‘<h1>wo shi nsd01‘ > /var/www/nsd01/index.html

# echo ‘<h1>wo shi nsd02‘ > /var/www/nsd02/index.html

2.重起httpd服务

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

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

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

 <VirtualHost  *:80>

   ServerName   server0.example.com

   DocumentRoot  /var/www/myweb

 </VirtualHost>

2.重起httpd服务

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

网页内容访问

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

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

all granted  允许所有

all denied   拒绝所有

<Directory 目录的绝对路径>

    .. ..

   Require all denied|granted

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

</Directory>

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

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

虚拟机Server0:

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

# mkdir /var/www/myweb/private

# echo ‘<h1>wo shi private‘ > /var/www/myweb/private/index.html

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

<Directory  "/var/www/myweb/private">   #针对路径

    Require ip 172.25.0.11              #仅允许172.25.0.11

</Directory>

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   ‘<h1>wo  shi  Webroot‘  >  /webroot/index.html

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

<VirtualHost  *:80>

  ServerName    server0.example.com

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

</VirtualHost>

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

<Directory  "/webroot">

    Require all granted      #允许所有

</Directory>

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

<VirtualHost *:80>

  ServerName   webapp0.example.com

  DocumentRoot  /var/www/nsd02

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

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

</VirtualHost>

  重起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

<VirtualHost *:80>

  ServerName   webapp0.example.com

  DocumentRoot  /var/www/nsd02

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

</VirtualHost>

[root@server0 /]# systemctl  restart  httpd

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

 Listen  8909

 <VirtualHost   *:8909>

   ServerName   webapp0.example.com

   DocumentRoot   /var/www/nsd02

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

 </VirtualHost>

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

HTTP服务基础(Apache)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!