马哥架构第1周课程作业

news2025/1/11 3:55:37

马哥架构第1周课程作业

  • 一. 画图解释一次web请求的过程。涉及tcp/ip, dns, nginx,wsgi。
  • 二. 编译安装nginx, 详细解读常用参数。
  • 三. 基于nginx完成动静分离部署 lamp。php到后端php-fpm, static/ 在nginx本地。
    • 3.1 配置 nginx 实现反向代理的动静分离
    • 3.2 准备后端 httpd 服务器
  • 四. nginx 利用rewrite完成 全栈ssl配置。
  • 五.(可选)有兴趣,可以完成acme完成自动SSL签发。
  • 六. 通过zabbix监控nginx状态,web网站健康状态。
  • 七. 简要描述后期学习的计划。

一. 画图解释一次web请求的过程。涉及tcp/ip, dns, nginx,wsgi。

简化版流程

1 DNS
2 CDN
3 TCP
4 Web服务器处理
1)建立连接
2)接收清求
3)处理请求 GET、POST等方法
4)获取资源
5)构建响应报文
6)发送响应
7)记录日志
5 浏览器接收响应报文,进行页面渲染

详细版

  1. 浏览器通过DNS把域名解析成对应的IP地址
  2. 根据这个IP地址在互联网上找到对应的服务器,建立Socket连接
  3. 客户端服务器发送HTTP协议请求,请求服务器里的文档资源
  4. 在服务器端,实际上还有复杂的业务逻辑:服务器可能有多台,到底指向哪台服务器处理请求,这需要一个负载平衡设备来平均分配所有用户的请求
  5. 还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里;
  6. 当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(如:css,js或者图片)时又会发起另外的请求,而这些请求可能会在CDN上,那么CDN服务器又会处理这个用户的请求。
  7. 客户端与服务器断开。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。

一个 HTTP 事务就是这样实现的,看起来很简单,原理其实是挺负责的。需要注意的是客户机与服务器之间的通信是非持久连接的,也就是当服务器发送了应答后就与客户机断开连接,等待下一次请求。

但需要注意的是,从 HTTP 1.1 开始,服务器可以与客户端保持长连接,不一定是请求完成后就断开连接,这取决于服务器的操作。

二. 编译安装nginx, 详细解读常用参数。

由于工作中都用的脚本安装在这就简单描述一下哈
config、make -j cpu make install

常用参数这里都有说明就不一一列举了
在这里插入图片描述

三. 基于nginx完成动静分离部署 lamp。php到后端php-fpm, static/ 在nginx本地。

3.1 配置 nginx 实现反向代理的动静分离

[root@centos8 ~]#vi /apps/nginx/conf/conf.d/pc.conf 
 location / {
   proxy_pass http://10.0.0.28;
   index index.html;
 }
 location ~ \.php$ {
   root /data/php;
   fastcgi_pass   10.0.0.18:9000;
   fastcgi_index index.php;
    #fastcgi_param SCRIPT_FILENAME /data/php$fastcgi_script_name;
   fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include       fastcgi_params;
 } 

3.2 准备后端 httpd 服务器

#在后端服务器10.0.0.28上安装httpd服务
[root@centos8 ~]#dnf -y install httpd
[root@centos8 ~]#systemctl enable --now httpd
[root@centos8 ~]#mkdir /var/www/html/images
[root@centos8 ~]#wget -O /var/www/html/images/magedu.jpg 
http://www.magedu.com/wp-content/uploads/2019/05/2019052306372726.jpg

四. nginx 利用rewrite完成 全栈ssl配置。

hsts浏览器内部就跳转https

[root@centos8 ~]#vim /apps/nginx/conf/conf.d/pc.conf
server {
 listen 80;
 listen 443 ssl;
 ssl_certificate /apps/nginx/conf/conf.d/www.magedu.org.crt;
 ssl_certificate_key /apps/nginx/conf/conf.d/www.magedu.org.key;
 ssl_session_cache shared:sslcache:20m;
 ssl_session_timeout 10m;
 server_name www.magedu.org;
 error_log /apps/nginx/logs/magedu.org_error.log notice;  
 access_log /apps/nginx/logs/magedu.org_access.log main;
 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"
always;
 location / {
   root /data/nginx/html/pc;
   if ( $scheme = http ) {
         rewrite ^/(.*)$ https://www.magedu.org/$1 redirect;                   
                            
   }
 }
[root@centos8 ~]#systemctl restart nginx
[root@centos7 ~]#curl -ikL https://www.magedu.org
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Thu, 08 Oct 2020 15:29:56 GMT
Content-Type: text/html
Content-Length: 7
Last-Modified: Sat, 26 Sep 2020 01:18:32 GMT
Connection: keep-alive
ETag: "5f6e96e8-7"
Strict-Transport-Security: max-age=31536000; includeSubDomains
Accept-Ranges: bytes
pc web

京东一小时内访问网站请求在浏览器直接就跳转,一小时后还是发送http请求到了服务器返回https
在这里插入图片描述

五.(可选)有兴趣,可以完成acme完成自动SSL签发。

参考
https://www.yoyoask.com/?p=9313

六. 通过zabbix监控nginx状态,web网站健康状态。

在这里插入图片描述
在这里插入图片描述

七. 简要描述后期学习的计划。

1.理论方面自己平时记录下老王讲的经验自己再加以总结,并在面试的前一周多加复习
2.实操的话自身经验还是足够的,为了节约时间大部分都一遍过。
3. 面试也准备一些高情商的话术,让面试官对自己看上去更加有眼缘。

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

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

相关文章

equals和==的区别

目录 1.基本数据类型和引用数据类型的说明 2. 3.equals 1.基本数据类型和引用数据类型的说明 基本数据类型:byte,short,int,long,float,double,char,boolean。 对应的默认值&…

2-4进程管理-死锁

文章目录一.死锁的概念二.死锁的处理策略1.死锁预防:破坏必要条件,让死锁无法发生2.避免死锁:在动态分配资源的过程中,用一些算法防止系统进入不安全状态(1)银行家算法(2)系统安全状…

Java if else分支结构精讲

Java 支持两种选择语句:if 语句和 switch 语句。其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制,而 switch 语句则用于对多个整型值进行匹配,从而实现分支控制。这些语句允许你只有在程序运行时才能知道其状态的情况下&#…

2022:不恋过往,不畏将来

一、开篇 少年有山海,踏过皆繁华。岁月不居,时节如流,时间在指尖悄悄流逝,人生即将翻开新的一年的篇章。2022年,注定是一个不平凡的年份,这一年,我们从关心世界到关心国家,最后关心自…

2023年12306购票平台自动化购票二|解决车次查找与预定

目录 一、说明 1.1、背景 1.2、说明 二、步骤 2.1、点击去购票 2.2、在搜索框中输入车次信息 2.3、点击查找 2.4、出现车次信息,进行筛选,如果有票则点击计入预定车票界面 三、结果 四、小节 一、说明 1.1、背景 接上文,春运抢不到…

适用于 Windows 的 5 大 PDF 编辑器

“如何在 Windows 7/8/10/11 上编辑 PDF 文件?” “适用于 Windows 7/8/10/11的最佳 PDF 编辑器是什么?” 升级到 Windows 7/8/10/11 后,你会发现很多应用程序在新的 Windows 系统上无法运行,包括 PDF 编辑器。然而,一…

POJ 3070 Fibonacci

Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 30932Accepted: 20284 Description In the Fibonacci integer sequence, F0 0, F1 1, and Fn Fn − 1 Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are: 0, 1, 1, 2, 3,…

opencv源码之中值滤波medianBlur_SortNet解读

背景中值滤波,最大值滤波,最小值滤波属于排序滤波,常用于图像去噪处理。最大/小值滤波的处理比较好理解,就是逐个比较窗口内的每个数字,每次比较会根据所属任务保留最大值,或最小值。假设滑动窗口是3*3&…

固体物理分子模拟实验(二)MPI的安装

固体物理分子模拟实验(二)MPI的安装 文章目录固体物理分子模拟实验(二)MPI的安装前言一、MPI是什么?二、安装步骤(Ubuntu22.04mpich-4.0.2)1、下载mpich解压包2、安装前置组件3、文件配置&#…

【一文讲通】如何检测数据满足同分布

1 统计指标的方法1.1群体稳定性指标(Population Stability Index,PSI)群体稳定性指标(Population Stability Index,PSI), 衡量未来的样本(如测试集)及训练样本评分的分布…

【Linux】基础开发工具使用 --- vim

目录 前言 vim的基本概念 具体操作 插入模式 命令模式下的指令 底行模式下的指令 vim的配置 前言 🍧了解了 Linux 的一些基本的指令之后若要在 Linux 上进行程序的编写,除了 nano 以外,我们还可以选择 vim 进行编写。而 vim 是 vi 升级…

OJ万题详解––孤独的照片(C++详解)

题目 题目描述 Farmer John 最近购入了 N 头新的奶牛(),每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。 奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。 然…

0107-JAVA和JDK的区别

前言 因为工作需要现在也不得不接触后端java语言,对于java和jdk一直存在疑惑,今天就详细总结一下 1.什么是java 人话就是java是一门后端脚本语言和PHP一样 2.什么是jdk JDK的全称是Java Development Kit,直译就是:Java开发工…

真实地址查询——DNS

通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给 Web 服务器。但在发送之前,还有一项工作需要完成,那就是查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址…

java 基础 - 泛型

泛型 术语中文含义举例Parameterized type参数化的类型ListActual typeparameter实际类型参数StringGeneric type泛型类型ListFormal typeparameter形式类型参数 EUnbounded wildcard type无限制通配符类型List<?>Raw type原始类型ListBounded type parameter有限制类型…

Vue--》Vue3给数据共享增添的改变

目录 数据共享 父向子共享数据 子向父共享数据 父子组件间数据双向同步 兄弟组件共享数据 后代组件共享数据 使用Vue3的setup函数实现后代数据共享 数据共享 在项目开发中&#xff0c;组件之间的关系分为如下3种&#xff1a;父子关系、兄弟关系、后代关系。 父向子共享…

FPGA学习笔记(十二)IP核之FIFO的学习总结

系列文章目录 一、FPGA学习笔记&#xff08;一&#xff09;入门背景、软件及时钟约束 二、FPGA学习笔记&#xff08;二&#xff09;Verilog语法初步学习(语法篇1) 三、FPGA学习笔记&#xff08;三&#xff09; 流水灯入门FPGA设计流程 四、FPGA学习笔记&#xff08;四&…

机器人/人工智能/就业形势2023

机器人/人工智能/就业形势2022https://blog.csdn.net/ZhangRelay/article/details/124441772机器人人工智能课程需求和就业趋势-2022-https://blog.csdn.net/ZhangRelay/article/details/127087308如上已成往事。2023年如何呢&#xff1f;之前文章都过于简洁&#xff0c;很多朋…

浅谈 MySQL 的 Undo log 日志

undo log 存储在类型为 FIL_PAGE_UNDO_LOG 页中。 可以从系统表空间中分配空间&#xff0c;也可以从 undo tablespace 中分配空间。 FIL_PAGE_UNDO_LOG 类型页主要分为四部分&#xff1a; File Header&#xff0c;所有页都有的结构Undo Page Header TRX_UNDO_PAGE_TYPE&#x…

十一、docker相关问题解决方案

&#x1f33b;&#x1f33b;一、创建tomcat失败报348 问题二、端口监听问题&#xff0c;没安装命令三、非正常关闭电脑导致虚拟机无法启动一、创建tomcat失败报348 问题 创建失败问题&#xff1a; docker: Error response from daemon: OCI runtime create failed: container…