nginx配置文件说明
Nginx的配置文件说明
Nginx配置文件的主要配置块可以分为三个部分:全局配置块(events和http块),events块和http块。这三个部分共同定义了Nginx服务器的整体行为和处理HTTP请求的方式。
全局配置块:
包含了影响Nginx服务器整体行为的指令,如进程数、工作目录、错误日志级别、进程ID文件路径、用户和组设置等。
全局配置块中的指令对整个Nginx服务器实例生效。
events 块:
处理Nginx服务器与客户端的连接事件。
定义了工作进程数、连接数限制等影响服务器性能和稳定性的参数。
events块通常位于全局配置块内,也可以单独作为一个块。
http 块:
处理HTTP请求,是Nginx配置的核心部分。
包括了解析请求、生成响应、日志记录等指令。
http块可以包含多个子块,如server、location、upstream等,这些子块分别用于配置服务器设置、请求处理位置和后端服务器集群
nginx.conf配置文件说明
```powershell
指令名 指令值; #全局块,主要设置Nginx服务器整体运行的配置指令 在event和http之外的都是全局块#events块,主要设置,Nginx服务器与用户的网络连接
events { 指令名 指令值;
}
#http块,是Nginx服务器配置中的重要部分,代理、缓存、日志记录、第三方模块配置...
http { 指令名 指令值;server { #server块,是Nginx配置和虚拟主机相关的内容指令名 指令值;location / { #location块,基于Nginx服务器接收请求字符串与location后面的值进行匹配,对特定请求进行处理指令名 指令值;}}...
}
``
nginx.conf配置文件中默认有三大块:全局块、events块、http块
http块中可以配置多个server块,每个server块又可以配置多个location块。
全局块
1.user:用于配置运行Nginx服务器的worker进程的用户和用户组。
语法 | user user [group] |
---|---|
默认值 | nobody |
位置 | 全局块 |
修改user配置 用户必须是存在Linux中的
如果没有用户可以通过以下命令创建一个
useradd jackwade
测试配置效果
在/root/html/下创建index.html页面,添加如下内容
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
<p><em>I am iron man</em></p>
</body>
</html>
修改nginx.conf配置文件
在对应http下的server模块下添加location配置如下:
./nginx -s reload 执行重载配置文件命令
访问也会提示403,没有权限
复制cp index.html /home/jackwade/html/
然后再次修改nginx.conf
location / {#root html;root /home/jackwade/html;index index.html index.htm;
}
./nginx -s reload 重新加载配置文件
访问页面
通过ps -ef | grep nginx命令查看进程 ,可以看到工作进程是"jackwade"
通过上面的测试,使用user指令可以指定启动运行工作进程的用户及用户组。
work process
master_process:用于关闭 Nginx 的主进程模式,使其只运行一个单一的工作进程.
语法 | master_process [on off] |
---|---|
默认值 | master_process on; |
位置 | 全局块 |
master_process off;
作用:master_process:用于关闭 Nginx 的主进程模式,使其只运行一个单一的工作进程
- 性能影响: 关闭主进程模式会导致 Nginx 只运行一个单一的工作进程,从而不能充分利用多核处理器的优势,影响性能。
- 稳定性: 在生产环境中使用 master_process off; 可能会影响 Nginx 的稳定性和可扩展性,因此一般不建议在生产环境中使用。
- 调试用途: master_process off; 常用于开发和调试环境,以简化调试过程和配置测试
关闭后需要重启生效,查看进程里面则没有相应的Master和worker进程
关闭后查看效果 ps -ef | grep nginx
worker_processes
用于定义 Nginx 启动多少个工作进程。通常,设置为与服务器 CPU 核心数相同,以便充分利用多核处理器。
语法 | worker_processes [number|auto] |
---|---|
默认值 | worker_processes 1; |
位置 | 全局块 |
设置工作进程 worker_processes 2;
如果master_process off; 则worker processes 2 设置无效,将之前设置的master_process 注释掉。
同样的该设置需要重新启动才能生效
重启
设置后的效果
auto :设置成auto会自动适当的工作进程数,一般等于机器的 CPU 核心数。
daemon守护进程
daemon 指令用于控制 Nginx 是否以守护进程方式运行。默认情况下,Nginx 是以守护进程方式运行的。守护进程不会随着终端关闭而停止。
语法 | daemon [on | off] |
---|---|
默认值 | daemon on; |
示例 | daemon off; |
位置 | 全局块 |
pid
用来配置Nginx当前master进程的进程号ID存储的文件路径。
语法 | pid [文件路径] |
---|---|
默认值 | pid /usr/local/nginx/logs/nginx.pid |
位置 | 全局块、http、server、location |
error_log
用来配置Nginx的错误日志存放路径
语法 | error_log [文件路径] [级别] |
---|---|
默认值 | error_log /var/log/nginx/error.log warn; |
示例 | error_log /var/log/nginx/error.log debug; |
位置 | 全局块、http、server、location |
该属性也可以通过./configure --error-log-path=[PATH]来指定
其中日志级别的值有:debug|info|notice|warn|error|crit|alert|emerg,翻译过来为调试|信息|通知|警告|错误|临界|警报|紧急,这块建议设置的时候不要设置成info以下的等级,因为会带来大量的磁盘I/O消耗,影响Nginx的性能。
include
语法 | include [文件路径] |
---|---|
默认值 | 无 |
示例 | include /etc/nginx/conf.d/*.conf; |
位置 | 全局块 |
使用 include指令可以包含指定的配置文件中的配置内容到当前的配置文件中
例如我们include 一个 nginx_main.conf
nginx_main.conf配置内容如下
在全局块中添加include
测试配置文件
重新加载文件 nginx -s reload
查看进程,可以看到是4个jackwade进程,表明引入成功
http块配置说明
http块
定义MIME-Type
Nginx 的 mime.types 配置文件用于定义文件扩展名与 MIME 类型之间的映射。MIME 类型(Multipurpose Internet Mail Extensions)是一种标准,用于描述文件的类型和格式。通过将文件扩展名与适当的 MIME 类型关联,Nginx 能够正确地告诉浏览器如何处理和显示文件。
在Nginx的配置文件中,http块中默认有两行配置
include mime.types;
default_type application/octet-stream;
mime.types文件内容
default_type:用来配置Nginx响应前端请求默认的MIME类型。
语法 | default_type [MIME 类型] |
---|---|
默认值 | default_type text/plain; |
示例 | default_type application/octet-stream; |
位置 | http, server, location 块 |
当请求某些接口时,需要返回指定的文本字符串或 JSON 字符串。如果逻辑非常简单,或者返回的是固定的字符串,可以使用 Nginx 来快速实现。这不仅免去了编写程序来响应请求的麻烦,还可以减少服务器资源的占用,并且提高响应性能
location /get_text {default_type text/plain;return 200 "This is Nginx Text Test";
}
按如上修改配置nginx.conf文件
修改完成后使用nginx -t测试文件是否正确
使用nginx -s reload重新加载配置文件
测试:
测试html
添加配置
location /get_html {default_type text/html;return 200 "<h2>This is Nginx html Test<h2>";
}
修改完成后执行nginx -s reload重新加载配置文件
返回json格式
```powershell
location /get_json {default_type application/json;return 200 '{"name":"jack","age":"18","gender":1}';
}
sendfile
sendfile 用于设置 Nginx 服务器是否使用 sendfile() 系统调用来传输文件。sendfile 是 Linux 内核中处理静态资源的一个函数,它可以显著提升从磁盘读取静态资源并返回到前端的过程。
当 Nginx 访问静态资源时,这些资源通常存储在磁盘上。通过启用 sendfile,Nginx 可以直接从磁盘读取数据并发送到网络,而无需在内核空间和用户空间之间进行多次数据复制。这种方式大大提高了静态资源处理的性能,减轻了 CPU 负载,并加快了文件传输速度。
简而言之,启用 sendfile 能显著提高 Nginx 处理静态资源的性能,使得文件传输更加高效。
如下图:
未开启sendfile的处理流程
开启sendfile的处理流程
语法 | sendfile [on | off] |
---|---|
默认值 | sendfile off; |
示例 | sendfile on; |
位置 | http, server, location 块 |
sendfile 指令的解释
语法: sendfile [on | off]
用于启用或禁用 sendfile 功能。
默认值: sendfile off;
默认情况下,sendfile 功能是禁用的。
示例: sendfile on;
启用 sendfile 功能,允许在发送文件时直接从磁盘读取数据并发送到网络,减少数据在内核空间和用户空间之间的复制,提高文件传输效率。
keepalive_timeout
keepalive_timeout:用来设置长连接的超时时间。
为什么要用keepalive_timeout
HTTP是一种无状态协议,客户端向服务端发送一个TCP请求,服务端响应完毕后断开连接。
如果客户端向服务端发送多个请求,那么每个请求都需要重新创建一次连接,效率相对来说比较低,
使用keepalive模式,可以告诉服务器端在处理完一个请求后保持这个TCP连接的打开状态,
若接收到来自这个客户端的其他请求,服务端就会利用这个未被关闭的连接,而不需要重新创建一个新连接,
提升效率,但是这个连接也不能一直保持,这样的话,连接如果过多,也会使服务端的性能下降,这个时候就需要我们进行设置其的超时时间。
语法 | keepalive_timeout [timeout] [header_timeout] |
---|---|
默认值 | keepalive_timeout 75s; |
示例 | keepalive_timeout 65s; |
位置 | http, server, location 块 |
keepalive_requests
keepalive_requests: 指令用于设置在一个保持活动连接(Keep-Alive)上可以执行的最大请求数。通过限制请求数,可以防止单个连接长时间占用资源,提高服务器的可用性和性能。
语法 | keepalive_requests [number] |
---|---|
默认值 | keepalive_requests 100; |
示例 | keepalive_requests 200; |
位置 | http, server, location 块 |
events块配置说明
events 块是 Nginx 配置文件 (nginx.conf) 中的重要部分,用于配置与事件处理相关的参数。它主要定义了 Nginx 服务器如何处理客户端连接,以及控制工作进程的行为。这些配置对于优化服务器性能和稳定性至关重要。
accept_mutex 设置Nginx网络连接序列化
语法 | accept_mutex [on | off] |
---|---|
默认值 | accept_mutex on; |
示例 | accept_mutex off; |
位置 | events 块 |
accept_mutex 这个配置主要用于解决常说的"惊群"问题。当客户端发送一个请求连接时,Nginx 作为多进程服务器,会同时唤醒多个 worker 进程,但最终只有一个进程能获取到连接。如果每次唤醒的进程数目太多,就会影响 Nginx 的整体性能。
如果将 accept_mutex 设置为 on(开启状态),Nginx 会对多个进程接收连接进行排队,一个接一个地唤醒进程接收连接,从而防止多个进程争抢连接资源,提高性能。然而,是否开启该配置需要根据实际的生产环境来决定。
例如有时候多个客户端发送了多个请求,改配置为on,这个时候这会逐一去唤醒工作进程,实际上比关闭状态下情况还差了些,浪费了询问的时间。
配置示例:
multi_accept:设置是否允许同时接收多个网络连接
语法 | multi_accept [on | off] |
---|---|
默认值 | multi_accept off; |
示例 | multi_accept on; |
位置 | events 块 |
multi_accept 的配置决定了 Nginx 的工作进程在有新连接到达时,是一次只处理一个连接,还是一次处理多个连接。
multi_accept off: 默认情况下,每次有新连接到达时,一个工作进程只接受一个连接。这种方式适合普通的请求负载,因为它避免了过多连接堆积在单个进程上,从而导致资源竞争。
multi_accept on: 当启用这个选项时,每次有新连接到达时,一个工作进程会尽可能多地接受新连接。这对于高并发场景是有利的,因为可以一次性处理多个新连接,减少系统调用的开销,提高整体处理效率。
配置示例:
worker_connections:配置单个worker进程最大的连接数
语法 | worker_connections [number] |
---|---|
默认值 | worker_connections 1024; |
位置 | events 块 |
worker_connections 指令用于设置每个 Nginx 工作进程可以同时处理的最大连接数,这里的连接数不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数,另外,number值不能大于操作系统支持打开的最大文件句柄数量。
可以通过ulimit -n 查看最大文件句柄数量。
ulimit -n
配置示例
use:设置Nginx服务器选择哪种事件驱动来处理网络消息
语法 | use [方法] |
---|---|
默认值 | use select; |
示例 | use epoll; |
位置 | events 块 |
注意:此处所选择事件处理模型是Nginx优化部分的一个重要内容,method的可选值有select/poll/epoll/kqueue等,注意使用epoll需要linux内核在2.6以上才能够使用epoll函数来优化Nginx。
假设 Nginx 服务器是一家餐厅,而事件驱动模型就像餐厅里服务员用来管理桌子的方式:
select: 这是最传统的方式,适用于几乎所有操作系统,但在处理大量连接时效率较低。就像服务员需要逐个查看每张桌子是否有新客人,效率不高。
poll: 这是 select 的改进版本,能够更有效地处理更多的连接。服务员可以查看多个桌子,但还是需要逐个处理。
epoll: 这是 Linux 上最先进的方式,能够高效地处理大量并发连接,适用于高流量的网站。就像服务员有一个智能系统,能够快速找到需要服务的桌子,大大提高了效率。
kqueue: 这是 FreeBSD 上的高效事件驱动模型,类似于 Linux 的 epoll。服务员有一个类似的智能系统,可以快速响应需求。(FreeBSD 是一个类 UNIX 操作系统,基于 BSD (Berkeley Software Distribution) 系统。它主要用于服务器和嵌入式平台,但也可以用作桌面操作系统。)
/dev/poll: 这是 Solaris 上的事件驱动模型,也是一种高效的管理方式。
配置文件配置
events {worker_connections 1024;accept_mutex on;multi_accept on;use epoll; #使用epoll
}
另外这些值的选择,我们也可以在编译的时候使用
–with-select_module、#加入到nginx编译环境
–without-select_module、#移除nginx编译环境
–with-poll_module、
–without-poll_module
来设置是否需要将对应的事件驱动模块编译到Nginx的内核。
相关文章:
nginx配置文件说明
Nginx的配置文件说明 Nginx配置文件的主要配置块可以分为三个部分:全局配置块(events和http块),events块和http块。这三个部分共同定义了Nginx服务器的整体行为和处理HTTP请求的方式。 全局配置块: 包含了影响Nginx服…...
用不同的url头利用Python访问一个网站,把返回的东西保存为txt文件
这个需要调用requests模块(相当于c的头文件) import requests 还需要一个User-Agent头(这个意思就是告诉python用的什么系统和浏览器) Google Chrome(Windows): Mozilla/5.0 (Windows NT 10.0; Win64; x64…...
一文掌握Prometheus实现页面登录认证并集成grafana
一、接入方式 以保护Web站点的访问控制,如HTTP 服务器配置中实现安全的加密通信和身份验证,保护 Web 应用程序和用户数据的安全性。 1.1 加密密码 通过httpd-tools工具包来进行Web站点加密 yum install -y httpd-tools方式一:通过htpasswd生…...
欢迎来到 Mint Expedition:Web3 和 NFT 的新时代开始
7 月 15 日,Mint Expedition 正式开启,作为 Mint 生态系统的旗舰项目,将彻底变革 Web3 和 NFT 去中心化应用! Mint Expedition 是 Mint 的最新航程,延续了 Mint Forest 的成功。Mint Forest 吸引了超过 41.4 万独立用…...
针对环境构图的全局一致性扫描点云数据对齐(Graph SLAM)
本算法是一个经典的,针对SLAM(simultaneous localization and mapping 即时定位与地图构建)问题而提出的算法。该算法的提出者是Feng Lu和Evangelos Milios,他们在本算法中开创了通过全局优化方程组以减少约束引入的误差来进一步优…...
Matlab学习笔记01 - 基本数据类型
Matlab学习笔记01 - 基本数据类型 1、数据类型转换2、矩阵2.1 访问单个矩阵元素2.2 访问多个矩阵元素2.3 矩阵转置 3、字符与字符串4、数值与字符串5、元胞数组 1、数据类型转换 十进制转十六进制字符串‘FF’ >> hex2dec(3ff)ans 1023十进制转十六进制字符串 >>…...
基于重要抽样的主动学习不平衡分类方法ALIS
这篇论文讨论了数据分布不平衡对分类器性能造成的影响,并提出了一种新的有效解决方案 - 主动学习框架ALIS。 1、数据分布不平衡会影响分类器的学习性能。现有的方法主要集中在过采样少数类或欠采样多数类,但往往只采用单一的采样技术,无法有效解决严重的类别不平衡问题。 2、论…...
Python爬虫(基本流程)
1. 确定目标和范围 明确需求:确定你需要从哪些网站抓取哪些数据。合法性:检查目标网站的robots.txt文件,了解哪些内容可以被抓取。数据范围:确定爬取数据的起始和结束点,比如时间范围、页面数量等。 2. 选择合适的工…...
primeflex教学笔记20240720, FastAPI+Vue3+PrimeVue前后端分离开发
练习 先实现基本的页面结构: 代码如下: <template><div class"flex p-3 bg-gray-100 gap-3"><div class"w-20rem h-12rem bg-indigo-200 flex justify-content-center align-items-center text-white text-5xl">…...
移动设备安全革命:应对威胁与解决方案
移动设备已成为我们日常工作和家庭生活中不可或缺的工具,然而,对于它们安全性的关注和投资仍然远远不够。本文深入分析了移动设备安全的发展轨迹、目前面临的威胁态势,以及业界对于这些安全漏洞响应迟缓的深层原因。文中还探讨了人们在心理层…...
【C语言】 链表实现学生管理系统(堆区开辟空间)
总体思路都能写出来,问题是感觉稍微比之前的麻烦一些,在刚开始创建结构体的时候,并没有去按照链表的思路去写,导致写成了顺序表,后面就一直纠结空间怎么开辟。 链表是由一个头节点和其它申请出来的小节点连起来的&…...
STM32实战篇:按键(外部输入信号)触发中断
功能要求 将两个按键分别与引脚PA0、PA1相连接,通过按键按下,能够触发中断响应程序(不需明确功能)。 代码流程如下: 实现代码 #include "stm32f10x.h" // Device headerint main() {//开…...
Android SurfaceView 组件介绍,挖洞原理详解
文章目录 组件介绍基本概念关键特性使用场景 SurfaceHolder介绍主要功能使用示例 SurfaceView 挖洞原理工作机制 使用SurfaceView展示图片示例创建一个自定义的 SurfaceView类在 Activity 中使用 ImageSurfaceView注意事项效果展示 组件介绍 在 Android 开发中,Sur…...
day2加餐 Go 接口型函数的使用场景
文章目录 问题价值使用场景其他语言类似特性 问题 在 动手写分布式缓存 - GeeCache day2 单机并发缓存 这篇文章中,有一个接口型函数的实现: // A Getter loads data for a key. type Getter interface {Get(key string) ([]byte, error) }// A Getter…...
摄像头 RN6752v1 视频采集卡
摄像头 AHD倒车摄像头比较好,AHD英文全名Analog High Definition,即模拟高清,拥有比较好的分辨率与画面质感。 RN6752v1 GQW AKKY2 usb 采集卡 FHD(1080p)、HD(720p)和D1(480i&am…...
记录vivado自带IP iBert眼图近端回环
记录利用vivado自带IP核工具测试信号质量 ibert是测试眼图的工具,在使用的时候并不用改太多的内容,只需要注意参考时钟及所需要的引脚即可。由于条件的限制,并没有使用光纤和电缆进行连接进行外部回环,仅使用内部回环做测试&…...
js | Core
http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ Object 是什么? 属性[[prototype]]对象。 例如,下面的,son是对象,foo不是对象。打印出来的son,能看到有一个prototype 对象。 prototype vs _proto_ v…...
Log4J reminder
Java JNDI and Log injection https://docs.oracle.com/javase/jndi/tutorial/ See also https://telegra.ph/Log4J-Vulnerability-Explained-07-21...
Unity XR Interaction Toolkit(VR、AR交互工具包)记录安装到开发的流程,以及遇到的常见问题(一)!
提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、XR Interaction Toolkit是什么?二、跨平台交互三、 AR 功能四、XR Interaction Toolkit的特点五、XR Interaction Toolkit 示例总结 前言 随着VR行业的发展&#…...
MongoDB文档整理
过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…...
【AI学习】关于Scaling Law的相关学习
一、苦涩的教训 首先,学习一段重要话语: The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin. 从70年的人工智能研究中…...
学习小记-Kafka相较于其他MQ有啥优势?
Kafka 相比于 RocketMQ 有以下几个优势: 1. 高吞吐量和低延迟: Kafka 以其出色的 I/O 性能和分布式架构设计,能够实现极高的吞吐量,每秒数百万的消息处理能力,适合大规模数据流处理。同时,Kafka 设计为…...
技能 | postman接口测试工具安装及使用
哈喽小伙伴们大家好!今天来给大家分享一款轻量级,高效好用的接口测试工具-postman. Postman是一个流行的API开发工具,主要用于测试、开发和文档化API。以下是关于Postman的介绍及其主要使用场景: Postman介绍: 1. 功能丰富的API客户端&#…...
移动UI:任务中心的作用,该如何设计更合理?
任务中心是移动应用中用于展示和管理用户待办任务、提醒事项、用户福利、打卡签到等内容的功能模块。合理设计任务中心可以提升用户体验和工作效率。 以下是一些设计任务中心的合理建议: 1. 易于查看和管理: 任务中心的设计应该使用户能够快速、直观地…...
pytorch学习(十)优化函数
优化函数主要有,SGD, Adam,RMSProp这三种,并且有lr学习率,momentum动量,betas等参数需要设置。 通过这篇文章,可以学到pytorch中的优化函数的使用。 1.代码 代码参考《python深度学习-基于pytorch》&…...
Ubuntu22.04:安装Samba
1.安装Samba服务 $ sudo apt install samba samba-common 2.创建共享目录 $ mkdir /home/xxx/samba $ chmod 777 /home/xxx/samba 3.将用户加入到Samba服务中 $ sudo smbpasswd -a xxx 设置用户xxx访问Samba的密码 4.配置Samba服务 $ sudo vi /etc/samba/smb.conf 在最后加入 …...
Powershell 使用介绍
0 Preface/Foreword 0.1 参考文档 Starting Windows PowerShell - PowerShell | Microsoft Learn 1 Powershell 介绍 2 命令介绍 2.1 新建文件夹 New-Item -Path C:\GitLab-Runner -ItemType Directory 2.2 切换路径 cd C:\GitLab-Runner 2.3 下载文件 Invoke-WebRequ…...
【Langchain大语言模型开发教程】记忆
🔗 LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、Langchain的历史记忆 ConversationBufferMemory 2、基于窗口限制的临时记忆 ConversationBufferWindowMemory 3、基于Token数量的临时记忆 ConversationTokenBufferMemory 4、基于历史…...
最新Qt6的下载与成功安装详细介绍
引言 Qt6 是一款强大的跨平台应用程序开发框架,支持多种编程语言,最常用的是C。Qt6带来了许多改进和新功能,包括对C17的支持、增强的QML和UI技术、新的图形架构,以及构建系统方面的革新。本文将指导你如何在Windows平台上下载和安…...
LeetCode 热题 HOT 100 (001/100)【宇宙最简单版】
【链表】 No. 0160 相交链表 【简单】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#x…...
怎么优化网站加载速度/百度一下官方网址
什么是jar包 jar是Java Archive文件的后缀,它代表的含义是将java的字节码文件以及相关的静态资源进行归档。我们知道通常一个java程序需要包含多个字节码文件,为了方便在网络上进行传输就需要进行压缩,而jar包实际上就是zip压缩文件。 如何…...
什么网站可以做会计题目/百度应用平台
不称深度指南,只愿浅度指北之前,用 VBA 开发了一个 Excel 插件「浅北表格助手」,随后,也发了两篇关于WordVBA 的教程,后台有小伙伴留言,说希望看到一些偏实用的代码。今天,它来了。我们在写 Wor…...
厦门企业建站系统模板/公司网站推广方案
数据 3 分钟由 ACDU (中国 DBA 联盟) 与墨天轮联合出品的全新视频节目上线啦~三分钟带你来了解数据行业动态,节目内容主要包含数据行业最新的产品发布、公司大事件、行业新闻等。每周五更新,不见不散~本期内容概览:202…...
中国科技成就的例子/阿里巴巴seo排名优化
这是第一个类:publicclassStudents{//定义身高属性floatheight;}这是第二个类:publicclassHeight{publicfloatgetAvgHeight(Students[]stu){floatavgHeight0;floatall0;//所有学生身...这是第一个类:public class Students {//定义身高属性float height;}这是第二个类:public c…...
如何免费推广网站/网络销售是做什么的
项目中最好不要有相同名称的session和cookie转载于:https://www.cnblogs.com/heyiping/p/9317948.html...
网站开发商/合肥网站维护公司
memset函数在 #include<string.h>sort函数在 #include<algorithm>因为蓝桥杯没有c11语法,无法使用auto函数,创建迭代器需要 迭代器定义::iterator 如 map<int,int>::iterater it ma.begin()abs,sqrt函数在 #include<…...