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 None
          Require 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 granted
                    Require not ip 10.0.0.1
                </RequireAll>

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

                <RequireAny>
                    Require all denied
                    Require 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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

淘宝预定商品收不到尾款通知 - 解决方案

问题 用户在使用淘宝购买预定商品后&#xff0c;待补尾款时&#xff0c;无法收到尾款通知&#xff0c;从而导致错过补齐尾款无法购买预定商品&#xff0c;下文介绍解决方案。 解决方案 进入淘宝后&#xff0c;购买预定商品时&#xff0c;在提交订单页面时&#xff0c;取消勾…

基于单片机的智能饮水机系统

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、系统设计方案分析2.1 设计功能及性能分析2.2设计方案分析 二、系统的硬件设计3.1 系统设计框图系统软件设计4.1 总体介绍原理图 四、 结论 概要 现在很多学校以及家庭使用的饮水机的功能都是比较单一的&#…

当pytest遇上poium会擦出什么火花

首先&#xff0c;创建一个test_sample/test_demo.py 文件&#xff0c;写入下面三行代码。 def test_bing(page):page.get("https://www.bing.com")assert page.get_title "必应"不要问题 page 从哪里来&#xff0c;打开终端进入test_sample/目录&#xf…

MySQL---搜索引擎

MySQL的存储引擎是什么 MySQL当中数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制&#xff0c;索引技巧 锁定水平&#xff0c;以及最终提供的不同的功能和能力&#xff0c;这些就是我们说的存储引擎。 MySQL存储引擎的功能 1.MySQL将数据存储在文…

软件测试面试最经典的5个问题

软件测试面试灵魂五问&#xff01; 请做一下自我介绍&#xff1f;你为什么从上家公司离职&#xff1f;为什么转行做测试? 你对测试行业的认识&#xff1f;你的期望薪资是多少&#xff1f;最后&#xff0c;你要问我什么&#xff1f; 一、请做一下自我介绍 简历上有的可以一两…

C++ Concurrency in Action 2nd Edition

《C Concurrency in Action - SECOND EDITION》的中文翻译-面圈网 (mianshigee.com) C/C 学习教程源码-C/C源码推荐-面试哥 (mianshigee.com) 作者正是为C11标准引入线程库的C标准委员会成员本人&#xff01;并且本书作者还编写了众多构成C标准的多线程和并发相关的提案、制定…

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題 新搭建的FLINK集群出现的问题汇总 1.新搭建的Flink集群和Hadoop集群无法正常启动Flink任务 查看这个提交任务的日志无法发现有用的错误信息。 进一步查看yarn日志&#xff1a; 发现只有JobManager的错误日志出现了如下的…

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法 代码思路&#xff1a; 要用栈解决先序遍历&#xff0c;我们首先要知道栈的性质和二叉树先序遍历的规则 栈最基本的就是先进后出 而二叉树先序遍历就是“根左右” 利用这两个性质&#xff0c;我们可以先将根结点入队…

【数智化案例展】领克汽车——火山引擎助力领克汽车数字化营销实践

‍ 火山引擎案例 本项目案例由火山引擎投递并参与数据猿与上海大数据联盟联合推出的《2023中国数智化转型升级创新服务企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 领克汽车是由吉利汽车、沃尔沃汽车和吉利控股集团合资成立的全球新高端品牌。据吉…

SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议

配置nginx.conf文件&#xff0c;这个文件一般在/etc/nginx/...中&#xff0c;由于每个人的体质不一样&#xff0c;也有可能在别的路径里&#xff0c;自己找找... # 配置工作进程的最大连接数 events {worker_connections 1024; }# 配置HTTP服务 http {# 导入mime.types配置文件…

3D人像手办定制业务再掀热潮,这一次有怎样的革新?(方法篇)

最近&#xff0c;3D真人手办热潮再起&#xff0c;最出圈的一次当属亚运会的3D打印元宇宙体验舱里面各国运动员带火的真人手办定制项目。作为3D技术推广者&#xff0c;博雅仔也在后台接受了很多朋友的询问—— ◆ 技术已经成熟了吗&#xff1f; ◆ 个人定做3D真人手办市场价格…

【CSS】div 盒子居中的常用方法

<body><div class"main"><div class"box"></div></div> </body>绝对定位加 margin: auto; &#xff1a; <style>* {padding: 0;margin: 0;}.main {width: 400px;height: 400px;border: 2px solid #000;positio…

海康Visionmaster-全局触发:使用全局触发功能执行流 程的方法

我们这里以 TCP 通讯为例&#xff0c;视觉作为 TCP 服务端&#xff0c;与视觉交互的第三方设备作为 TCP 客户端。当 TCP 客户端连接上视觉服务端后&#xff0c;客户端发送字符串 T1,视觉执行流程 1&#xff1b; 客户端发送字符串 T2&#xff0c;视觉执行流程 2。 这样的需求我…

apachesolr启动带调试

这里solr.cmd报错&#xff0c;报错原因是java版本问题&#xff0c;后面发现这是因为多个java版本导致读取java_home失败&#xff0c; 那么我们修改solr.cmd中的JAVA_HOME为SOLR_JAVA_HOME IF DEFINED SOLR_JAVA_HOME set "JAVA_HOME%SOLR_JAVA_HOME%"环境变量将SOLR…

linux傻瓜式安装Java环境及中间件

linux配置Java环境及中间件 1.傻瓜式安装Java1.下载2.追加3.刷新测试 2.傻瓜式安装docker1.docker卸载2.docker安装 3.Docker傻瓜式安装Redis1.傻瓜式安装安装并配置 4.Docker傻瓜式安装RabbitMQ5.Docker傻瓜式安装MySql1.拉取2.配置 6.傻瓜式安装Nacos1.官网下载nacos2.SQL文件…

皮肤病辅助诊断软件,基于Android编写

1.系统介绍 编写的皮肤病辅助诊断软件&#xff0c;包括皮肤病识别、皮肤病区域分割、皮肤病信息介绍、识别历史记录查询、简单图像处理操作以及本机信息查询等功能 2.登录界面 运行之后首先显示登录界面 3.注册界面 注册一个账号 4.主界面 输入用户名密码点击登录按钮…

NI-9236 国产化10 kS/s/ch,350 Ω四分之一桥应变计,8通道C系列应变/桥输入模块

10 kS/s/ch&#xff0c;350 Ω四分之一桥应变计&#xff0c;8通道C系列应变/桥输入模块 NI‑9236可同步测量所有通道的动态应变&#xff0c;从而实现了高速同步测量。 该功能对于需要在特定时刻对多个通道进行比较的应用&#xff08;例如冲击测试&#xff09;非常重要。\n\nNI…

Python基础入门例程42-NP42 公式计算器(运算符)

最近的博文&#xff1a; Python基础入门例程41-NP41 二进制位运算&#xff08;运算符&#xff09;-CSDN博客 Python基础入门例程40-NP40 俱乐部的成员&#xff08;运算符&#xff09;-CSDN博客 Python基础入门例程39-NP39 字符串之间的比较&#xff08;运算符&#xff09;-C…

mysql、clickhouse时间日期加法

mysql 在’2023-10-27 23:59:59’上增加5秒&#xff1a; SELECT DATE_ADD(2023-10-27 23:59:59, INTERVAL 5 second);clickhouse SELECT date_add(SECOND, 3, toDate(2018-01-01 00:00:00));clickhouse时间按秒、分、时、日、月、年作差 按秒&#xff1a; SELECT dateDiff…

「Verilog学习笔记」位拆分与运算

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 1、寄存器的位是可以分开单独运算的&#xff0c;并不是一个输入就一定是一个数据&#xff0c;在很多情况下&#xff0c;一个输入既包括数据又包括地址等其他有效信息 2、需…