Linux CentOS 8(HTTP的配置与管理)


Linux CentOS 8(HTTP的配置与管理)


目录

    • 一、常见的 HTTP(web)服务软件
    • 二、基本的 Apache httpd 配置
    • 三、httpd.conf 配置文件详解
      • 案例1
    • 四、配置虚拟主机(在一台主机发布多个站点)
      • 案例2


一、常见的 HTTP(web)服务软件

  • Apache
    Apache 可以运行在几乎所有广泛使用的计算机平台上。Apache 源于 NCSA httpd 服务器,经过多次修改,不仅简单、速度快、而且性能稳定,还可以用来做代理服务器。

  • IIS
    它是微软公司主推的服务器,是一种 Web(网页)服务组件,其中包括 Web 服务器、FTP 服务器、NNTP 服务器和 SMTP 服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它不是开源的。

  • Nginx
    是一个高性能的 HTTP 和反向代理 web 服务器(反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源)。在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。能够支持高达 50,000 个并发连接数的响应。

  • Openrestry
    一个基于 Nginx与 Lua 的可伸缩的高性能 Web 平台。360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。

  • Tengine
    是淘宝基于Nginx开发的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。目的是打造一个高效、安全的Web平台。

二、基本的 Apache httpd 配置

1、安装Apache

[root@localhost ~]# yum -y install httpd[root@localhost ~]# rpm -ql httpd | grep conf$       //查httpd的配置文件
与Apache服务器相关的主要目录和文件如下:
/etc/httpd:服务程序的根目录
/etc/httpd/conf/httpd.conf:服务器的主配置文件
/var/www/html/:网页文档的默认根目录(网站根目录)
/etc/init.d/httpd:服务的控制脚本文件
/usr/sbin/httpd:服务的主要执行程序
/var/log/httpd/access_log:访问日志文件
/var/log/httpd/error_log:错误日志文件

2、修改配置文件

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

3、建立测试网站

[root@localhost ~]# cd /var/www/html/
[root@localhost html]# echo“This is my Website!!> index.html

4、检查Selinux上下文

[root@localhost ~]# chcon –R -t httpd_sys_content_t /var/www/html/index.html
或
[root@localhost ~]# restorecon –R /var/www/html/ 
//文件和目录的SELinux信息不匹配时,使用restorecon来恢复网页主目录中所有文件的SELinux配置信息如果网站文档存放在在其他目录,如放在/opt/www目录,则需要
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t/opt/www(/.*)?

5、启动服务

[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd

6、放通防火墙服务

[root@localhost~]# firewall-cmd --permanent --add-service=http --add-service=https
或
[root@localhost~]# firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp
//http和https的端口号分别为80和443
[root@localhost ~]# firewall-cmd --reload

7、测试

[root@localhost ~]# curl 192.168.21.128
This is my Website!!

三、httpd.conf 配置文件详解

1.切换到 /etc/httpd/conf 目录查看全局环境配置文件内容,如图2-1所示。

[root@localhost ~]# grep -v '#' httpd.conf | grep -v '^$'

在这里插入图片描述

图2-1

参数解析:

  • ServerRoot:用于指定Apache的运行目录(httpd服务器的根目录),包括了运行站点必需的目录和文件。服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是相对这个目录下。

  • Listen:用于设置服务器监听的网络端口号,默认为80。如有多块网卡,默认监听所有网卡。

  • User/Group apache: 启动服务后转换的用户/组身份,在启动服务时通常以root身份,然后转换身份,增加系统安全性。

  • ServerAdmin:用于设置服务器管理员的E-Mail地址,可以通过此地址及时联系服务器管理员。

  • ServerName :服务器名称(完整主机名)默认是不需要指定的,服务器通过名字解析过程来获得自己的名字。

  • DocumentRoot:网页文件存放的目录。

  • DircectoryIndex: 指定访问的主页的默认主页名字,可以设置多个文件,默认首页文件名为index.html。

  • ErrorLog:错误日志存放的位置。

  • LogLevel:Apache日志的级别。

  • CustomLog:说明日志记录的位置,这里面使用了相对路径,所以ServerRoot需要指出,日志位置就存放在/etc/httpd/logs。

命令解析:

[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# grep -v '#' httpd.conf | grep -v '^$'
#    -v 反选      ^ 以开头      $ 以结尾     ^$ 过滤空白符

注:以上配置项是文件中最主要的全局配置项,其他的配置项,如需要使用可以查看服务器中的相关手册文档。以上详情部分来自:https://www.cnblogs.com/carbon3/p/5616417.html

2、httpd.conf中的区域设置
控制目录的访问权限:

<Directory "/var/www">AllowOverride NoneRequire all granted
</Directory>Require指令,用于指定允许、拒绝列表:
Require {all | local | ip | host} {granted | denied | 域名}
Require all granted    //允许所有访问
Require all denied      //拒绝所有访问  
Require local           //允许本机访问
Require ip 10.0.0.1     //允许10.0.0.1这个地址访问
Require not ip 10.0.0.1     //不允许10.0.0.1这个地址访问//如果是一条规则,可以直接使用,但是如果有多条规则,则必须把这些规则包含在如下元素当中:

举例1:允许所有访问,只拒绝10.0.0.1访问 :

                <RequireAll>Require all grantedRequire not ip 10.0.0.1</RequireAll>

举例2:拒绝所有访问,只允许10.0.0.1访问:

                <RequireAny>Require all deniedRequire ip 10.0.0.1</RequireAny>

案例1

新建一个 web 站点,网站内容放在/web目录,且不允许 192.168.21.129访问,允许其他所有访问。服务器名称 www.example.com,发布端口82。构建过程参考如下:

1、 修改主机名

[root@localhost ~]# hostnamectl set-hostname www.example.com

2、 域名解析

[root@www ~]# vim /etc/hosts
192.168.12.128   www.example.com   www

3、 创建站点的网页文件

[root@www ~]# mkdir /web
[root@www ~]# echo "This is a web dir" > /web/index.html 
[root@www ~]# echo "This is a 1 dir" > /web/1.html

4、 安装httpd服务

[root@www ~]# yum -y install httpd

5、 修改主配置文件,如图2-2

[root@www ~]# vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

图2-2

6、 开启httpd服务

[root@www ~]# systemctl enable httpd
[root@www ~]# systemctl start httpd

7、 修改文件安全上下文

[root@www ~]# chcon –R -t httpd_sys_content_t /web/index.html
[root@www ~]# chcon –R -t httpd_sys_content_t /web/1.html

8、 放通防火墙服务

[root@www ~]# firewall-cmd --permanent --add-service=82/tcp
[root@www ~]# firewall-cmd --reload
[root@www ~]# setenforce 0

9、 测试
(1)本机测试:

[root@www ~]# curl 192.168.21.128:82
This is a web dir
[root@www ~]# curl 192.168.21.128:82/1.html
This is a 1 dir

(2)客户端(IP地址为192.168.12.129)测试:

[root@localhost ~]# curl 192.168.12.128:82
curl: (7) Couldn't connect to server
[root@localhost ~]# curl 192.168.12.128:82/1.html
curl: (7) Couldn't connect to server

四、配置虚拟主机(在一台主机发布多个站点)

配置虚拟主机有三种方法:
1、基于IP:服务器上配多个IP,一个IP发布一个站点(一般不用)
192.168.12.128
192.168.12.129

2、基于端口:相同IP+不同端口。
192.168.12.128:80
192.168.12.128:82
192.168.12.128:8080

3、基于域名虚拟主机:相同IP+相同端口+不同主机名(最常用)
www.example.com 192.168.12.128:80
mail.example.com 192.168.12.128:80

案例2

本案例以实现两台虚拟主机www.example.commail.example.com为例,其对应的服务器IP地址为192.168.12.128,构建过程参考如下:
1、 域名解析

[root@localhost ~]#  vim /etc/hosts
192.168.12.128   www.example.com  www
192.168.12.128   mail.example.com  mail

2、 创建虚拟站点的网页文件

[root@localhost ~]# mkdir /www /mail
[root@localhost ~]# echo www.example.com  > /www/index.html[root@localhost ~]# echo mail.example.com > /mail/index.html 

3、 制虚拟主机样版文件

[root@localhost ~]# cp /usr/share/doc/httpd/httpd-vhosts.conf   /etc/httpd/conf.d/ 

4、 修改配置文件,如图3-1

[root@localhost ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf 

在这里插入图片描述

图3-1

5、 重启服务

[root@localhost ~]# systemctl restart httpd

6、 放通防火墙服务

[root@localhost ~]# firewall-cmd --permanent --add-service=80/tcp
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# setenforce 0

7、测试
(1)主机测试:

[root@localhost ~]# curl www.example.com
www.example.com
[root@localhost ~]# curl mail.example.com
mail.example.com
[root@localhost ~]# curl 192.168.12.128
www.example.com

注:网站内容与/etc/httpd/conf.d/httpd-vhosts.conf的虚拟主机顺序有关,图3-2中SeverName为www.example.com写在前。

在这里插入图片描述

图3-2

(2)客户端(IP为192.168.21.129)测试:

[root@localhost ~]# curl www.example.com
curl: (6) Could not resolve host: www.example.com#客户端不能把域名解析成对应的IP,需要在hosts文件内添加域名与IP的映射。[root@localhost ~]# vim /etc/hosts
192.168.12.128   www.example.com   www
192.168.12.128   mail.example.com  mail[root@localhost ~]# curl www.example.com
www.example.com[root@localhost ~]# curl mail.example.com
mail.example.com

制作成员: 何嘉愉
排版: 裕新
初审: 杨佳佳
复审: 二月二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161890.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Object转List<>,转List<Map<>>

这样就不会局限在转换到List<Map<String,Object>>这一种类型上了.可以转换成List<Map<String,V>>上等,进行泛型转换虽然多了一个参数,但是可以重载啊注: 感觉field.get(key) 这里处理的不是很好,如果有更好的办法可以留言 public static <K, V> …

已完结,给小白的《50讲Python自动化办公》

大家好&#xff0c;这里是程序员晚枫&#xff0c;小红薯也叫这个名。 写在前面 上个周末去成都参加了第8届中国开源年会&#xff0c;认识了很多行业前辈和优秀的同龄人。 我发现在工作之外还能有一番事业的人&#xff0c;都有一个让我羡慕的共同点&#xff1a;有一个拿得出手…

注册电气工程师证书挂靠有风险吗?考试难度很高是吗?前景怎么样

一.先说证书挂靠问题&#xff0c;毫无疑问&#xff0c;有风险&#xff0c;远的不说咱说说近的&#xff0c; 比如下面这张图 从上面这张图可以看出来&#xff0c;哪怕是2023&#xff0c;还有陆陆续续的人因为挂靠的问题被处罚&#xff0c;所以我的建议是能不挂就不挂&#xff0c…

【Unity ShaderGraph】| 快速制作一个 表面水纹叠加效果

前言 【Unity ShaderGraph】| 快速制作一个 表面水纹叠加效果一、效果展示二、表面水纹叠加效果三、应用实例 前言 本文将使用ShaderGraph制作一个表面水纹叠加效果&#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇文章&#xff1a;【Unity Sh…

【AI视野·今日Sound 声学论文速览 第八期】Wed, 20 Sep 2023

AI视野今日CS.Sound 声学论文速览 Wed, 20 Sep 2023 Totally 1 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Accelerating Diffusion-Based Text-to-Audio Generation with Consistency Distillation Authors Yatong Bai, Trung Dang, Dung Tran, K…

Spring Boot整合Swagger

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

【unity3D】使用RawImage实现UI上的帧动画

&#x1f4a6;本专栏是我关于游戏开发的笔记 &#x1f236;本篇是一个简短的小知识点 使用RawImage实现帧动画 找一个帧动画连续的图片拖到工程中&#xff0c;将Texture Type改成Sprite&#xff08;2D和UI&#xff09;&#xff0c;点击apply应用上 在工程中新建一个RawImage,将…

centos7-lamp

目录 一、安装 1.关闭防火墙关闭selinux 2.安装apache 3.配置主页 二、部署mariadb&#xff08;mysql&#xff09; 1.用yum安装 2.启动数据库 3.看下端口是否listen 4登录mysql 5.修改下密码 三、安装php 1.安装依赖包 2.安装php解释器和php连接mysql驱动 3.配置…

分布式服务框架设计

目录 服务框架的设计 服务框架的功能 服务框架的性能指标 服务治理需要哪些功能 服务框架的设计 尽管不同的分布式服务框架实现细节存在差异&#xff0c;但是核心功能差异不大&#xff0c;下面的架构图描绘了一个分布式服务框架的整体逻辑架构 总共分为 3 层&#xff1a;1…

【Android】Android Framework系列---CarPower深度睡眠STR

Android Framework系列—CarPower深度睡眠 之前博客说了CarPower的开机启动流程 这里分析一下&#xff0c;Android CarPower实现深度睡眠的流程。 首先&#xff0c;什么是深度睡眠(Deep Sleep)? Android进入Deep Sleep后&#xff0c;关闭屏幕、关闭CPU的电源&#xff0c;保持…

国内某发动机制造工厂RFID智能制造应用解决方案

一、工厂布局和装备 国内某发动机制造工厂的装配车间布局合理&#xff0c;设备先进&#xff0c;在这个5万平方米的生产区域内&#xff0c;各个工位之间流程紧密&#xff0c;工厂采用了柔性设备&#xff0c;占比达到了67%&#xff0c;数控化率超过90%&#xff0c;自动化率达到了…

Android java Handler sendMessage使用Parcelable传递实例化对象,我这里传递Bitmap 图片数据

一、Bundle给我们提供了一个putParcelable(key,value)的方法。专门用于传递实例化对象。 二、我这里传递Bitmap 图片数据&#xff0c;实际使用可以成功传统图像数据。 发送&#xff1a;Bundle bundle new Bundle();bundle.putParcelable("bitmap",bitmap);msg.setD…