Day 20 Linux的WEB服务——apache

news2025/1/11 14:14:25

WEB服务简介

目前主流的web服务器软件

Linux:apache , nginx

Windows-server:IIS

服务器安装nginx或apache后,叫做web服务器(又称WWW服务器)

web服务器软件属于C/S框架模型

web服务器是一种被动程序只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应

WEB 服务协议

http:超文本传输协议,使用明文传输

https:安全套接字层超文本传输协议,使用密文传输,在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

URI:统一资源标识符

URL:统一资源定位符,定位到文件的地址

URI 包含  URL

WEB 服务器的工作原理

①连接过程:Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开socket(套接字)这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。

②请求过程:Web的浏览器运用socket这个文件向其服务器而提出各种请求。

③应答过程:运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。

④关闭连接:当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。

WEB中间件

中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。web中间件也叫做web服务器或者web容器

正常情况下一次web的访问顺序是

web浏览器—服务器(硬件)—web容器—web应用服务器—数据库服务器

常见的web中间件

Java中间件:Tomcat (java项目:war----tomcat;jar----jdk);Weblogic;Jboss;Webshere

PHP中间件:php-fpm;php;CGI;FastCGI;Php-FastCGI

Python中间件:wsgi;uwsgi

apache服务

apache默认端口号:80

安装部署

安装:yum -y install httpd

启动:systemctl start httpd

设置开机自启动:systemctl enable httpd

apache的目录和配置文件

/var/www/html  apache自带的默认网站发布目录(可自定义)

项目上线后,网站发布目录内的 index.html  为默认主页

/etc/httpd/conf/httpd.conf  apache主配置文件

serverRoot "/etc/httpd"    //存放配置文件的目录

Listen 80    //Apache服务监听端口

User apache    //子进程的用户

Group apache     //子进程的组

ServerAdmin root@localhost     //设置管理员邮件地址

DocumentRoot "/var/www/html"     //网站发布目录

目录属性设置格式:

<Directory 目录路径 > 

Require all denied 拒绝

Require all granted 允许

</Directort>

ErrorLog "/etc/httpd/logs/error_log"     //错误日志存放位置

自定义设置日志格式:

<IfModule log_config_module>   

 LogFormat 自定义日志格式 日志格式名

</IfModule>

例如:

<IfModule log_config_module>

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

</IfModule>

%h:客户端IP地址或主机名
%l:远程登录名,通常不用,值是“-”。
%u:远程用户名
%t:请求时间
%r:第一行请求,包括HTTP方法、请求的资源路径和协议版本
%>s:响应的状态码(例如200、404等)
%b:响应的大小,不包括HTTP头,以字节为单位
%{Referer}i:请求中的Referer头部字段
%{User-Agent}i:请求中的User-Agent头部字段

CustomLog "logs/access_log" combined  //定义访问日志存放位置及日志格式

/etc/httpd/conf.d/      apache子配置文件目录

/var/log/httpd/         apache日志目录 → 链接文件 /etc/httpd/logs/

/var/log/httpd/access_log 访问日志   

/var/log/httpd/error_log 错误日志

通过 apache 对外分享文件资源

mkdir /var/www/html/download

touch /var/www/html/download/file{1..10}

使用浏览器访问:web服务器IP/download

可进一步应用于搭建yum仓库:实验:使用apache + yum实现自制yum仓库

apache虚拟主机

虚拟主机:可以是实现在一台服务器上部署运行多个项目

三种方式

基于端口:使用同一个IP和域名,但是使用不同的端口访问不同的项目

基于域名:使用同一个IP和端口,但是使用不同的域名访问不同的项目

IP地址:使用同一个域名和端口,但是使用不同的IP地址访问不同的项目

基于端口的虚拟主机

①向web服务器上传多个项目包

②在apache子配置目录 /etc/httpd/conf.d/ 内编写配置文件

vim package1.conf

<VirtualHost *:81>    //端口

ServerName localhost    //域名

DocumentRoot /var/www/html/package1    //网站的发布目录

</VirtualHost>

<Directory /var/www/html/package1>

AllowOverride all

Require all granted

</Directory>

同样编写另外三个配置文件,采用基于端口的虚拟主机,修改端口号

vim package2.conf

vim package3.conf

vim package4.conf

③修改主配置文件 /etc/httpd/conf/httpd.conf ,增加对应的端口监听

Listen 81

Listen 82

Listen 83

Listen 84

④分别将四个项目包解压,拷贝到对应的网站发布目录

创建发布目录:mkdir /var/www/html/package{1..4}

解压项目包,并将解压后项目目录内的内容 cp -r 复制到相应的发布目录

⑤重启服务

systemctl restart httpd

⑥访问测试

服务器IP:81/82/83/84

注意:

如果使用的是云服务器,注意安全组配置问题

如果使用的是本地虚拟机,注意关防火墙和selinux

基于域名的虚拟主机

使用本地虚拟机,配合本地域名解析

①向web服务器上传多个项目包

②在apache子配置目录 /etc/httpd/conf.d/ 内编写配置文件

vim package.conf

<VirtualHost *:80>    //端口

ServerName www.package1.com    //域名

DocumentRoot /var/www/html/package1    //网站的发布目录

</VirtualHost>

<Directory /var/www/html/package1>

AllowOverride all

Require all granted

</Directory>

同样编写另外三个配置文件,采用基于域名的虚拟主机,修改ServerName对应的域名

④分别将四个项目包解压,拷贝到对应的网站发布目录

创建发布目录:mkdir /var/www/html/package{1..4}

解压项目包,并将解压后项目目录内的内容 cp -r 复制到相应的发布目录

⑤重启服务

systemctl restart httpd

⑥本地域名解析,将域名解析到对应的IP地址

在宿主机上做域名解析

文件位置:C:\Windows\System32\drivers\etc\hosts

对hosts文件修改权限

添加域名解析格式:IP地址 域名

⑦访问测试

在宿主机上的浏览器访问

www.package1/2/3/4.com

基于IP的虚拟主机

①使用fping命令,查找当前网段可用的IP,避免IP冲突

fping -g 10.9.25.0/24

选用101~104这四个IP

②给网卡添加IP地址(临时)

ip a a dev ens33 10.9.25.101

ip a a dev ens33 10.9.25.102

ip a a dev ens33 10.9.25.103

ip a a dev ens33 10.9.25.104

③将多个项目包上传至web服务器

④在apache子配置目录 /etc/httpd/conf.d/ 内编写配置文件

vim /etc/httpd/conf.d/package.conf

<VirtualHost 10.9.25.101:80>
ServerName localhost
DocumentRoot /var/www/html/package1
</VirtualHost>
<Directory /var/www/html/package1>
AllowOverride all
Require all granted
</Directory>

同样编写另外三个配置文件,采用基于IP的虚拟主机,修改VirtualHost对应的IP

⑤分别将四个项目包解压,拷贝到对应的网站发布目录

创建发布目录:mkdir /var/www/html/package{1..4}

解压项目包,并将解压后项目目录内的内容 cp -r 复制到相应的发布目录

⑥重启服务

systemctl restart httpd

⑦访问测试

用浏览器访问10.9.25.101/102/103/104

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jmeter之连接MySQL数据库

jmeter连接mysql数据库 mysql官网下载地址&#xff1a;MySQL :: Download Connector/J 步骤如下&#xff1a; 1、下载mysql的jar包放入到jmeter的lib/ext下&#xff0c;然后重启jmeter 链接: https://pan.baidu.com/s/1rRrMQKnEuKz8zOUfMdMHFg?pwdawfc 提取码: awfc 2、配置…

如何解决升级IntelliJ IDEA 2024后 打开项目就自动闪退关闭问题的终极指南

title: “&#x1f42f; 解决升级IntelliJ IDEA 2024后项目自动关闭的终极指南” date: 2024-04-23 author: 猫头虎 profile: CSDN 文章目录 title: "&#x1f42f; 解决升级IntelliJ IDEA 2024后项目自动关闭的终极指南" date: 2024-04-23 author: 猫头虎 profile: …

STM32点灯大师(中断法)

一、使用CubeMX配置 新增加了RCC进行配置 二、代码 需要重写虚函数&#xff0c;给自己引用

2024深圳杯数学建模挑战赛B题:批量工件并行切割下料问题思路代码成品论文分析

更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓ https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 问题重述 深圳杯数学建模挑战赛2024B题&#xff1a;批量工件并行切割下料问题 板材切割下料是工程机械领域重要…

盲人过马路安全:科技力量赋予“隐形守护者”

作为一名资深记者&#xff0c;我始终关注着社会各群体的生活现状&#xff0c;尤其是那些面临特殊挑战的人群。今天&#xff0c;我想聚焦一个看似平常却对盲人构成重大困扰的日常场景——过马路&#xff0c;以及一款名为蝙蝠避障的辅助应用如何成为他们的盲人过马路安全的守护者…

springboot的坑

问题&#xff1a;使用Autowired注入一个service&#xff0c;然后写了两个接口&#xff0c;第一个接口与请求时显示注入的service为空一直报错&#xff0c;但是第二个接口请求时service竟然不是空&#xff1f;在这里插入图片描述 凶手找到了&#xff0c;是private修饰。果然没仔…

CDN、边缘计算与云计算:构建现代网络的核心技术

在数字化时代&#xff0c;数据的快速传输和处理是保持竞争力的关键。内容分发网络&#xff08;CDN&#xff09;、边缘计算和云计算共同构成了现代互联网基础架构的核心&#xff0c;使内容快速、安全地到达用户手中。本文将探讨这三种技术的功能、相互关系以及未来的发展趋势。 …

网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)

网络互连 网络互连: 将多台计算机连接在一起, 完成数据共享 数据共享的本质是网络数据传输, 即计算机之间通过网络来传输数, 也叫做网络通信 根据网络互连的规模不同, 将网络划分为局域网和广域网 注意: 局域网和广域网是相对的概念 局域网LAN 又称内网, 局域网和局域网之间在没…

CCS项目持续集成

​ 因工作需要&#xff0c;用户提出希望可以做ccs项目的持续集成&#xff0c;及代码提交后能够自动编译并提交到svn。调研过jenkins之后发现重新手写更有性价比&#xff0c;所以肝了几晚终于搞出来了&#xff0c;现在分享出来。 ​ 先交代背景&#xff1a; 1. 代码分两部分&am…

谷粒商城实战(017 业务-单点登录)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第231p-第p235的内容 介绍 单点登录&#xff08;Single Sign-On&#xff0c;SSO&#xff09;是一种身份验证服务&#xff0c;允许用户使用一组凭…

程序猿成长之路之数据挖掘篇——朴素贝叶斯

朴素贝叶斯是数据挖掘分类的基础&#xff0c;本篇文章将介绍一下朴素贝叶斯算法 情景再现 以挑选西瓜为例&#xff0c;西瓜的色泽、瓜蒂、敲响声音、触感、脐部等特征都会影响到西瓜的好坏。那么我们怎么样可以挑选出一个好的西瓜呢&#xff1f; 分析过程 既然挑选西瓜有多个…

【七】jmeter5.5+influxdb2.0+prometheus+grafana

参考文章&#xff1a;https://blog.csdn.net/wenxingchen/article/details/126892890 https://blog.csdn.net/Zuo19960127/article/details/119726652 https://blog.csdn.net/shnu_cdk/article/details/132182858 promethus参考 由于自己下载的是infuldb2.0&#xff0c;所以按照…

【视频异常检测】Open-Vocabulary Video Anomaly Detection 论文阅读

Open-Vocabulary Video Anomaly Detection 论文阅读 AbstractMethod3.1. Overall Framework3.2. Temporal Adapter Module3.3. Semantic Knowledge Injection Module3.4. Novel Anomaly Synthesis Module3.5. Objective Functions3.5.1 Training stage without pseudo anomaly …

【webrtc】Chrome和Firefox在SDP协商过程中,针对localhost的不同处理

内网下chrome端webrtc协商失败 现象 我有一个webrtc服务器在局域网内&#xff0c;使用chrome浏览器访问时&#xff0c;发现webrtc在做媒体协商时失败。 具体表现是&#xff0c;在交换sdp后&#xff0c;ice的状态是oniceconnectionstatechange: failed 但是换成Firefox浏览器…

【Linux】文件目录及路径表示

1. Linux目录结构 在 Linux 系统中&#xff0c;有几个目录是比较重要的&#xff0c;平时需要注意不要误删除或者随意更改内部文件。 /etc&#xff1a; 这个是系统中的配置文件&#xff0c;如果更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr…

黄金行情下跌有投资机会吗?

尽管黄金价格的波动常常引起投资者的高度关注&#xff0c;但行情的下跌未必只是警讯&#xff0c;亦可能蕴藏着某些难得的投资机会。总之&#xff0c;答案是肯定的——在黄金行情下跌时&#xff0c;依旧有适宜的投资机会&#xff0c;只是这需要投资者具备相应的应对知识和策略。…

是德软件89600 RFID使用笔记

文章目录 1、进入RFID软件&#xff1a;2、RFID软件解调设置项3、如何查看一段指令数据 本文是日常工作的笔记分享。 lauch VSA&#xff08;矢量频谱分析&#xff09;后会出现以下界面&#xff1a; 当然这是因为频谱仪的输入有信号才显示如下&#xff1a; 否则就显示频谱仪的噪…

【书生浦语第二期实战营学习笔记作业(七)】

课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md 课程作业&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/opencompass/homework.md OpenCompass 大模型评测实战 1. 大模型的评测1.1 大模型评测如何促进发展1.2 大…

WebSocket的原理、作用、常见注解和生命周期的简单介绍,附带SpringBoot示例

文章目录 WebSocket是什么WebSocket的原理WebSocket的作用全双工和半双工客户端【浏览器】API服务端 【Java】APIWebSocket的生命周期WebSocket的常见注解SpringBoot简单代码示例 WebSocket是什么 WebSocket是一种 通信协议 &#xff0c;它在 客户端和服务器之间建立了一个双向…

线性代数 --- 矩阵的对角化以及矩阵的n次幂

矩阵的对角化以及矩阵的n次幂 &#xff08;特征向量与特征值的应用&#xff09; 前言&#xff1a; 在上一篇文章中&#xff0c;我记录了学习矩阵的特征向量和特征值的学习笔记&#xff0c;所关注的是那些矩阵A作用于向量x后&#xff0c;方向不发生改变的x(仅有尺度的缩放)。线…