当前位置: 首页 > news >正文

Nginx快速上手

Nginx快速上手


OVERVIEW

  • Nginx快速上手
    • 一、基本概念
      • 1.Nginx初步认识
      • 2.正向/反向代理
        • (1)正向代理
        • (2)反向代理
    • 二、Nginx 安装和配置
      • 1.安装
      • 2.Nginx指令
      • 3.Nginx配置
    • 三、Nginx的使用
      • 1.Web服务器
        • (1)静态网页存储目录
        • (2)Nginx静态网页设置
      • 2.反向代理和负载均衡
        • (1)反向代理设置
        • (2)负载均衡设置
      • 3.总结
    • 四、相关内容补充
      • 1.URL和URI
      • 2.DNS解析过程

一、基本概念

1.Nginx初步认识

Nginx能干什么?

  1. 作为web服务器:解析http协议
  2. 反向代理服务器:了解反向代理的概念
  3. 邮件服务器:解析邮件相关的协议: pop3/smtp/imap

Nginx的优势?

  1. 更快:高峰期(数以万计的并发时)nginx可以比其它web服务器更快的响应请求
  2. 高扩展:低耦合设计的模块组成,丰富的第三方模块支持
  3. 高可靠:经过大批网站检验,新浪、迅雷、
  4. 每个worker进程相对独立, 出错之后可以快速开启新的worker
    • worker进程的个数是可以控制的
    • 在后台干活的进程
  5. 低内存消耗:一般情况下,10000个非活跃的HTTP,Keep-Alive连接在nginx中仅消耗 2.5M内存
  6. 单机支持10万以上的并发连接:取决于内存,10万远未封顶
  7. 热部署:master和worker的分离设计,可实现7x24小时不间断服务的前提下升级nginx可执行文件
  8. 最自由的BSD许可协议:BSD许可协议允许用户免费使用nginx, 修改nginx源码,然后再发布(淘宝: tengine)

2.正向/反向代理

(1)正向代理

正向代理是位于客户端和原始服务器之间的服务器,为了能够从原始服务器获取请求的内容,客户端需要将请求发送给代理服务器,然后再由代理服务器将请求转发给原始服务器,原始服务器接受到代理服务器的请求并处理,然后将处理好的数据转发给代理服务器,之后再由代理服务器转发发给客户端,完成整个请求过程。

正向代理服务器是为用户服务的,正向代理的典型用途就是为在防火墙内的局域网客户端提供访问Internet的途径, 比如:

  • 学校的局域网
  • 单位局域网访问外部资源

在这里插入图片描述

(2)反向代理

反向代理方式是指代理原始服务器来接受来自Internet的链接请求然后将请求转发给内部网络上的原始服务器,并将从原始服务器上得到的结果转发给Internet上请求数据的客户端。那么顾名思义,反向代理就是位于Internet和原始服务器之间的服务器,对于客户端来说就表现为一台服务器,客户端所发送的请求都是直接发送给反向代理服务器,然后由反向代理服务器统一调配。

在这里插入图片描述

  1. 客户端给服务器发送请求, 连接服务器, 用户不知道服务器地址, 只有反向代理服务器的地址是公开的
  2. 请求直接发给反向代理服务器
  3. 反向代理服务器将请求转发给后边的web服务器
    • web服务器 N 台
    • 反向代理服务器转发请求会轮询进行
  4. web服务器收到请求进行处理, 得到结果
  5. web服务器将处理结果发送给反向代理服务器
  6. 反向代理服务器将拿到的结果转发给客户端

二、Nginx 安装和配置

1.安装

Nginx相关依赖安装

  • OpenSSL密码库(使用https进行通信的时候使用): http://www.openssl.org/
    • ./configure
    • make
    • sudo make install
  • ZLib数据压缩下载: http://www.zlib.net/
    • ./configure
    • make
    • sudo make install
  • PCRE解析正则表达式下载: http://www.pcre.org/
    • ./configure
    • make
    • sudo make install

Nginx安装

# nginx工作时候需要依赖三个库
# 三个参数=这三个库对应的源码安装目录
# 具体目录需要根据自己的电脑的库安装包的位置进行指定
./configure --with-openssl=../openssl-1.0.1t --with-pcre=../pcre-8.40 --with-zlib=../zlib-1.2.11
make
sudo make install

2.Nginx指令

  • Nginx的默认安装目录

    /usr/local/nginxconf -> 存储配置文件的目录html -> 默认的存储网站(服务器)静态资源的目录 [图片, html, js, css]logs -> 存储log日志sbin -> 启动nginx的可执行程序
    
  • Nginx可执行程序的路径

    /usr/local/nginx/sbin/nginx
    # 快速启动的方式
    # 1. 将/usr/local/nginx/sbin/添加到环境变量PATH中
    # 2. /usr/local/nginx/sbin/nginx创建软连接, 放到PATH对应的路径中, 比如: /usr/bin
    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
    
  • 启动Nginx - 需要管理器权限

    # 假设软连接已经创建完毕
    sudo nginx # 启动
    # 查看nginx运行状态
    ps -ef | grep nginx
    
  • 关闭Nginx

    # 第一种, 马上关闭
    sudo nginx -s stop
    # 第二种, 等nginx做完本次操作之后关闭
    sudo nginx -s quit
    
  • 重新加载Nginx

    sudo nginx -s reload  # 修改了nginx的配置文件之后, 需要执行该命令
    
  • 测试是否安装成功

    • 知道nginx对应的主机的IP地址 - > 192.168.1.100
    • 在浏览器中访问该IP地址看到一个welcom nginx的欢迎界面

3.Nginx配置

  1. Nginx配置文件的位置

    /usr/local/nginx/conf/nginx.conf
    
  2. Nginx配置文件的组织格式

    • http -> 模块, http相关的通信设置
      • server模块 -> 每个server对应的是一台web服务器
        • location 模块:处理的是客户端的请求
    • mail -> 模块, 处理邮件相关的动作
  3. 常用配置项介绍

user  nobody; # 启动之后的worker进程属于谁- 错误提示: nginx操作xxx文件时候失败, 原因: Permission denied  - 将nobody -> root
worker_processes  1; # 设置worker进程的个数, 最大 == cpu的核数 (推荐)
error_log  logs/error.log; # 错误日志, /usr/local/nginx
pid        logs/nginx.pid; # pid文件, 里边是nginx的进程ID
# nginx的事件处理
events {use epoll;	# 多路IO转接模型使用epollworker_connections  1024;// 每个工作的进程的最大连接数
}
http->server -> 每个server模块可以看做一台web服务器
server{listen       80;  # web服务器监听的端口, http协议的默认端口,https默认443server_name  localhost; # 对应一个域名, 客户端通过该域名访问服务器charset utf8; 	# 字符串编码location {	// 模块, 处理客户端的请求}
}# 客户端 (浏览器), 请求:http://192.168.10.100:80/login.html
# 服务器处理客户端的请求服务器要处理的指令如何从url中提取?- 去掉协议: http- 去掉IP/域名+端口: 192.168.10.100:80- 最后如果是文件名, 去掉该名字: login.html- 剩下的: /服务器要处理的location指令: location /{处理动作}

三、Nginx的使用

1.Web服务器

(1)静态网页存储目录

  • 默认的存储目录:

    /usr/local/nginx/html
    
  • 自己创建新的目录:

    应该在 /usr/local/nginx/
    mkdir /usr/local/nginx/mydir
    

(2)Nginx静态网页设置

在Nginx服务器上进行网页部署, 实现如下访问:在/usr/local/nginx/创建新的目录, 用来存储静态网页,

几个问题

  1. 客户端发起访问地址(访问静态网页): http://192.168.80.254/login.html ,

    是访问服务器的哪个位置?静态页面的login.html放到什么位置? 服务器要处理的动作

     / -> 服务器的资源根目录, /usr/local/nginx/yundisk,login.htm-> 放到yundisk中
    
    #对应这个请求服务器要添加一个location
    location 指令(/)
    {# 找一个静态网页root yundisk;  # 相对于/usr/local/nginx/来找# 客户端的请求是一个目录, nginx需要找一默认显示的网页index.html# index index.html index.htm;
    }
    # 配置之后重启nginx
    sudo nginx -s reload
    
  2. 访问地址(访问静态网页): http://192.168.80.254/hello/reg.html

    hello是什么?目录

    reg.html放到哪儿?hello目录中

    如何添加location?

     location /hello/
    {root yundisk;# index xx.html;}
    
  3. 访问地址(访问目录): http://192.168.80.254/upload/ ,浏览器显示upload.html

    直接访问一个目录, 得到一默认网页

    upload是一个目录, uplaod.html应该再upload目录中

     location /upload/
    {root yundisk;index upload.html;
    }
    

2.反向代理和负载均衡

  1. 需要客户端 - 1个:Window中的浏览器作为客户端

  2. 反向代理服务器 -> 1个:作为反向代理服务器

  3. web服务器 -> 2个

    • ubuntu - server1: 192.168.247.135

    • ubuntu - server2 : 192.168.26.250

(1)反向代理设置

在这里插入图片描述

修改nginx的配置文件 - conf/nginx.conf
# 代理几台服务器就需要几个server模块
# 将 domain_name1 与 domain_name2设置为映射到同一个ip地址# 客户端访问的url: http://192.168.1.100/login.html# server1server {listen       80;        # 客户端访问反向代理服务器, 代理服务器监听的端口server_name  domain_name1; # 客户端访问反向代理服务器, 需要一个域名location / {# 反向代理服务器转发指令, http:// 固定proxy_pass http://server1.test.com;}}# 添加一个代理模块upstream server1.test.com{server 192.168.247.135:80;}# server2server {listen       80;        # 客户端访问反向代理服务器, 代理服务器监听的端口server_name  domain_name2; # 客户端访问反向代理服务器, 需要一个域名location / {# 反向代理服务器转发指令, http:// 固定proxy_pass http://server2.test.com;}}# 添加一个代理模块upstream server2.test.com{server 192.168.26.250:80;}
}

(2)负载均衡设置

在这里插入图片描述

反向代理服务器需要做什么?server {listen       80;         # 客户端访问反向代理服务器, 代理服务器监听的端口server_name  localhost; # 客户端访问反向代理服务器, 需要一个域名location / {# 反向代理服务器转发指令, http:// 固定的头proxy_pass http://linux.com;}location /hello/ {# 反向代理服务器转发指令, http:// 固定的头proxy_pass http://linux.com;}location /upload/ {# 反向代理服务器转发指令, http:// 固定的头proxy_pass http://linux.com;}}# 添加一个代理模块upstream linux.com{server 192.168.247.135:80 weight=1;server 192.168.26.250:80 weight=3;}
web服务器需要做什么?
# 192.168.247.135
location /
{root xxx;index xxx;
}
location /hello/ 
{root xx;index xxx;
}
location /upload/ 
{root xxx;index xx;
}# 192.168.26.250
location /
{root xxx;index xxx;
}
location /hello/ 
{root xx;index xxx;
}
location /upload/ 
{root xxx;index xx;
}

3.总结

  • Nginx作为web服务器:
# 部署静态网页
1. 制作出来, 并且部署到对应的资源目录中
2. 根据客户端的请求, 在服务器端添加对应的 location处理指令 - nginx.conf
3. 重新加载nginx.conf配置文件
客户端请求的url: http://xxxx.com/hello/login.html- 去掉协议: http- 去掉域名/IP:- 去掉端口- 去掉尾部的文件名
  • Nginx作为反向代理服务器:
1. 找到反向代理服务器 的配置文件: nginx.conf
2. 找模块 http -> server
server{listen: 80; # 客户端访问反向代理服务器的时候使用的端口server_name: localhost; # 域名, 客户端访问反向代理服务器时候, 使用的地址# 配置如何转发, 根据客户端的请求的url找到对应的转发指令location /{# 设置转发地址proxy_pass http://test.com;}    location /login{# 设置转发地址proxy_pass http://test.com;} 
}
# 设置代理
upstream test.com
{# web服务器的地址信息server 192.168.1.100:80;server 192.168.1.101:80;
}# 192.168.1.100 web服务器
http->server
server{location /{# 设置转发地址root xxx;}    location /login{# 设置转发地址xxxx;} 
}
# 192.168.1.101 web服务器
http->server
server{location /{# 设置转发地址root xxx;}    location /login{# 设置转发地址xxxx;} 
}

四、相关内容补充

1.URL和URI

在这里插入图片描述

  • URL(Uniform Resource Locator): 统一资源定位符,表示资源位置的字符串

    • 基本格式: “协议://IP地址/路径和文件名
    • ftp://ftp.is.co.za/rfc/rfc1808.txt
    • http://www.ietf.org/rfc/rfc2396.txt
    • telnet://192.0.2.16:80/
  • URN(Uniform Resource Name): 统一资源名称

    • P2P下载中使用的磁力链接
  • URI(Uniform Resource Identifier): 统一资源标识符

    • 是一个紧凑的字符串用来标示抽象或物理资源, URL是URI的一种
    • 让URI能成为URL的当然就是那个“访问机制”,“网络位置”。e.g. http:// or ftp://
      • files.hp.com
      • tel:+1-816-555-1212
      • ftp://ftp.is.co.za/rfc/rfc1808.txt (also a URL)
      • http://www.ietf.org/rfc/rfc2396.txt (also a URL)
      • telnet://192.0.2.16:80/ (also a URL)
  • 经验式理解:

    http://localhost:8080/myweb/hello.html
    

    从包含关系上说: URI包含URL

    字符串长度上说: URL包含URI

    UIRI可以没有协议, 没有地址(IP/域名)

2.DNS解析过程

在这里插入图片描述

  1. 在浏览器中输入www.magedu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
    Windows和Linux系统都会在本地缓存dns解析的记录,提高速度。
  3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
  4. 如果要查询的域名,不由本地DNS服务器区域解析,但该DNS服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(没有设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责 .com域的这台服务器。这台负责 .com域的服务器收到请求后,如果自己无法解析,它就会找一个管理 .com域的下一级DNS服务器地址(magedu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找magedu.com域服务器,重复上面的动作进行查询,直至找到www.magedu.com主机。
  6. 如果用的是转发模式(设置转发器),此DNS服务器就会把请求转发至上一级ISP DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

相关文章:

Nginx快速上手

Nginx快速上手 OVERVIEW Nginx快速上手一、基本概念1.Nginx初步认识2.正向/反向代理(1)正向代理(2)反向代理 二、Nginx 安装和配置1.安装2.Nginx指令3.Nginx配置 三、Nginx的使用1.Web服务器(1)静态网页存储…...

【设计模式】实际场景解释策略模式与工厂模式的应用

文章目录 前言策略模式概念场景示例 工厂模式概念场景示例 策略模式与工厂模式的比较相同点不同点 总结 前言 策略模式和工厂模式是常见的设计模式,它们可以帮助我们更好地组织和管理代码,提高代码的可维护性和可扩展性。 在本篇博客中,我将…...

外包干了三年,算是废了...

先说一下自己的情况。大专生,19年通过校招进入湖南某软件公司,干了接近3年的测试,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年&#xff0c…...

九龙证券|光模块概念股封单资金超3亿元,传媒板块涨停潮来袭

今天A股三大股指低开低走。沪深两市收盘共37股涨停。剔除4只ST股,合计33股涨停。另外,10股封板未遂,整体封板率为78.72%。 涨停战场: 华工科技封单资金超3亿元 从收盘涨停板封单量来看,同方股份封单量最高&#xff0…...

[ES6] 数组

[ES6] 数组 数组的创建类数组对象可迭代对象的转换 扩展方法findfindIndexfillcopyWithinentrieskeysvaluesincludesflatflatMap 扩展运算符复制数组合并数组 数组缓冲区创建数组缓冲区视图创建 定型数组创建通过数组缓冲区生成通过构造函数 定型数组特性 拷贝浅拷贝深拷贝 数组…...

【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。

【问题描述】 编写一个程序计算出球、圆柱和圆锥的表面积和体积。 要求: (1)定义一个基类,至少含有一个数据成员半径,并设为保护成员; (2)定义基类的派生类球、圆柱、圆锥&#…...

Python 人工智能:16~20

原文:Artificial Intelligence with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何…...

【华为OD机试真题】最优资源分配(javapython)

最优资源分配 知识点数组贪心Q时间限制:1s空间限制:32MB限定语言:不限 题目描述: 某块业务芯片最小容量单位为1.25G,总容量为M1.25G,对该芯片资源编号为1,2,…,M。该芯片支持3种不同的配置,分别为A、B、C。 配置A:占用容量为1.251=1.25G 配置B:占用容量为1.252=2…...

git的使用——操作流程

一、什么是git git是一个开源的分布式版本控制软件,能够有效并高效的处理很小到非常大的项目。 二、添加SSH公钥 安装下载后,会发现鼠标右击,会出现 Git Bash Here 这个选项,如图所示,点击进入 1.打开git窗口后&…...

Ae:自动定向

Ae 菜单:图层/变换/自动定向 Auto-Orient 快捷键:Ctrl Alt O 自动定向 Auto-Orient是 Ae 图层中的一个附加的、隐藏实现(不会在时间轴面板上更改属性的值)的功能,它可以使得图层自动旋转或改变方向以朝向指定的运动路…...

ClickHouse入门详解

ClickHouse基础部分详解 一、ClickHouse简介二、ClickHouse单机版安装2.1、ClickHouse安装前准备环境2.2、ClickHouse单机安装2.3、ClickHouse一些默认路径2.4、ClickHouse端口说明 三、ClickHouse数据类型四、ClickHouse的表引擎4.1 MergeTree4.1.1 partition by 分区 五、Cli…...

javaweb笔记2

JSP 1、在webapp的根目录下新建一个index.jsp文件,访问以下地址: http://localhost:8080/webappName/index.jsp 实际上访问这个index.jsp文件,底层执行的是:index_jsp.class这个程序。 这个index.jsp会被tomcat翻译成index_jsp.j…...

【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如…...

算法训练day2:哈希表

哈希表理论基础 哈希表是根据关键码的值而直接进行访问的数据结构。 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据&#…...

Git——利用SSH密钥本地仓库上传远程GitHub库

文章目录 1、前言2、详细步骤2.1 创建密钥2.2 进入密钥文件并复制2.3 在GitHub上添加密钥2.4 回到本地仓库文件夹,连接GitHub并上传 3. 结语 1、前言 现在想要从本地设备将本地仓库上传到GitHub上需要用到SSH密钥,接下来讲解大致的步骤,本文默…...

一起读源码 —— Fastjson 的核心方法及其实现原理

源码介绍 Fastjson 是阿里巴巴开源的一个 Java 工具库,它常常被用来完成 Java 的对象与 JSON 格式的字符串的相互转化。 此文读的源码是撰写此文时 Fastjson 的最新的发布版本,即 1.2.83 下载源码 请前去 github 找到 release 最新版下载后解压&…...

Python实现批量图片下载及去重处理

背景 在爬虫应用开发中,常常需要批量下载图片,并对图片进行去重处理。Python 是一种非常流行的编程语言,也是开发爬虫应用的首选,本文将介绍如何使用 Python 下载图片,并对下载的图片进行去重处理。 内容 首先&…...

【QA】Python代码调试之解决Segmentation fault (core dumped)问题

Python代码调试之解决Segmentation fault 问题 问题描述排查过程1. 定位错误,2. 解决办法 参考资料 问题描述 Python3执行某一个程序时,报Segmentation fault (core dumped)错,且没有其他任何提示,无法查问题。 Segmentation fa…...

C++ 迭代器之旅(Journey of Iterators)

C 迭代器之旅(Journey of Iterators) 一、引言(Introduction)C Iterator模板库简介(Overview of C Iterator Template Library)Iterator的重要性和作用(The Importance and Role of Iterators&a…...

使用全球融合CDN的10大优势

根据预估,今年的全球内容交付网络(CDN)市场预计将达到424亿美元。而由于移动应用程序的激增和人工智能尤其是ChatGPT等相关领域的快速发展将进一步带来CDN市场的快速增长,可以说全球CDN的黄金时代才刚开始。 融合CDN和多CDN战略是…...

前端学习:HTML图像、表格、列表

目录 图像 一、图像标签和源属性(Src) 二、替换文本属性(Alt) 三、设置图片样式基本属性 四、图像标签 表格 一、标签 补充: 二、表格的表头 三、表格常用标签和属性 标签 属性 列表 一、无序列表 二、有序列表 三、定义列表 四、列表常用标签属性 图像 一、…...

202305读书笔记|《因思念而沉着》——任何赞美都是身外之物唯自由可随身携带

《因思念而沉着》作者巴哑哑,忘了是什么时候加入的书架,昨天下班地铁上读完的书。是美的! 部分节选如下: 羽叶茑萝举着熄灭的花青色的小枣落了一地所以哭泣沾染上了你的脸 在没落下 当我们开始生活 就是开始患上了眼疾你独自悲伤…...

M1 M2上能安装上Autocad 2024 Mac 中文版吗 autocad m1 m2版本有啦 终于支持Ventura 13x了

AutoCAD是一款强大的工具,适合于各种领域的设计和绘图。它具有二维图形和三维建模功能、多种文件格式支持、自定义命令和样式、批处理和脚本等特点,可以帮助用户实现高质量的设计和建模。同时,还支持云端存储和共享,方便用户随时随…...

【题解】P4055 [JSOI2009] 游戏

link 题目大意 题目说得比较清楚。 题解 前置知识:二分图最大匹配、基础博弈论。 每个点只能走一次的四联通点阵,可以想到二分图匹配。 将其套路地奇偶分点,相邻两点连边(显然不能为 #)。 先求一个最大匹配。 …...

P1020 [NOIP1999 普及组] 导弹拦截

题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统…...

Makefile学习

什么是Makefile 使用 GCC 编译器在 Linux 进行 C 语言编译,通过在终端执行 gcc 命 令来完成 C 文件的编译,如果我们的工程只有一两个 C 文件还好,需要输入的命令不多,当文件有几十、上百甚至上万个的时候用终端输入 GCC 命令的方…...

2.4 随机变量函数的分布

学习目标: 学习随机变量函数的分布,我会采取以下步骤: 熟悉随机变量的基本概念和分布:在学习随机变量函数的分布之前,需要先掌握随机变量的基本概念和分布,包括离散型随机变量和连续性随机变量的概率密度…...

数据结构【一】:前缀表达式与后缀表达式的区别

在早期计息机系统中,由于没有括号规定运算顺序,因此,依靠出栈和入栈两种方式,限定元素和符号之间的关系确定了前缀表达式和后缀表达式两种运算方式,中缀表达式即为普通的运算表达式;注意,在栈结…...

搭建 PostgreSQL

端口:5432 代理备份端口:6432 下载 postgresql-15.0-1-windows-x64 乱码显示 配置环境变量 PGDATA数据目录位置 找到postgresql.conf文件, 修改参数 lc_messagesUTF8 max_connections 1000 shared_buffers4GB work_mem8MB 问题&#xff1a…...

Nmap入门到高级【第四章】

预计更新Nmap基础知识 1.1 Nmap简介和历史 1.2 Nmap安装和使用方法 1.3 Nmap扫描技术和扫描选项 Nmap扫描技术 2.1 端口扫描技术 2.2 操作系统检测技术 2.3 服务和应用程序检测技术 2.4 漏洞检测技术 Nmap扫描选项 3.1 扫描类型选项 3.2 过滤器选项 3.3 探测选项 3.4 输出选项…...