nginx的安装和全局配置

2023-11-01

目录

何为nginx

Nginx 功能介绍

基础特性

nginx架构

Nginx 进程结构

nginx 模块

模块分类

使用方式

编译安装nginx

第一步:获取安装包

第二步:安装依赖

第三步:创建用户nginx

第四步:解压安装包

第五步:编译安装

最后一步:修改nginx目录的所属

额外一步:添加软连接(为了可以补全命令和快速启动)

nginx开机自启

平滑升级及信号的使用

平滑升级

第零步:准备操作

​编辑

第一步:备份旧版本,安装新版本

第二步:完成新版本安装

第三步:优雅关闭

第四步:升级 level up

回滚

信号

​编辑

常用的信号

查看版本信息

常用发送信号

分割日志

检查语法格式

nginx的配置文件

全局配置

模块

关闭版本和修改版本信息

修改进程数

进程与内核绑定

worker优先级

设置worker打开的文件的上限


何为nginx

Nginx是一款轻量级的 web服务器、反向代理服务器 及 mail代理服务器。其特点是占有内存少,并发能力强

Nginx 功能介绍
  • 静态的web资源服务器html,图片,js,css,txt等静态资源

  • http/https协议的反向代理 7层协议

  • 结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求

  • tcp/udp协议的请求转发(反向代理) 4层协议

基础特性
  • 模块化设计,较好的扩展性

  • 高可靠性

  • 支持热部署:不停机更新配置文件,升级版本,更换日志文件

  • 低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存

  • event-driven,aio,mmap,sendfile

nginx架构

Nginx 进程结构

nginx 进程分为 master(主进程),worker(子进程)

nginx 模块

模块分类
  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能

  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等

  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持

  • Stream服务模块: 实现反向代理功能,包括TCP协议代理

  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

使用方式

在编译安装第一步的时候使用 ./configure --help 可以查看支持的模块

./configure --help
# 查看帮助,里面会带有可用的模块
# 提示:要在nginx的安装包中使用该命令才有用

编译安装nginx

nginx不选择yum(rpm)安装的原因

  1. rpm会导致系统原有的库文件被破坏,导致新的软件包无法正常安装,存在着依赖关系;源码编译安装nginx快速,安全。
  2. 版本控制不行,规模部署,rpm的方式搞不定,没有统一的基础设施规范;源码编译nginx具有统一的基础设施规范。

所以我们选择编译安装nginx

第一步:获取安装包

nginx的安装可以自己去其官网下载  nginx: download

也可以使用命令:

wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 从 nginx 的官网下载 nginx 1.18.0 的安装包

第二步:安装依赖

一个软件的运行需要一个或者多个依赖

yum -y install gcc pcre-devel openssl-devel \
zlib-devel openssl  openssl-devel
# 使用 yum install 安装 nginx 运行所需要的依赖

第三步:创建用户nginx

服务器使用该服务时多多少少会有漏洞,为了安全起见,创建用户 nginx ,将漏洞可能引发的问题限制在较小的范围内

useradd -M -s /sbin/nologin nginx
# 新建程序用户 nginx 

第四步:解压安装包
tar xf nginx-1.18.0.tar.gz
# 解压 nginx 安装包

第五步:编译安装
cd /data/nginx-1.18.0/
# 进入安装包

mkdir /apps/nginx -p
# 创建目录(后续nginx的安装目录)

./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
# 声明需要的模块

make -j2 && make install
# 用两核编译,并开始安装

最后一步:修改nginx目录的所属
chown -R nginx.nginx /apps/nginx
# 修改权限,完全控制文件夹的权限

额外一步:添加软连接(为了可以补全命令和快速启动)

将nginx的启动项放到/usr/sbin/

ln -s /apps/nginx/sbin/nginx /usr/sbin
# 添加软连接

nginx开机自启

vim /usr/lib/systemd/system/nginx.service
# 编辑 nginx自启 文本

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
# 该文件中有很多的路径要根据你自己的 nginx 实际安装位置来修改
# 请勿盲目复制

平滑升级及信号的使用

平滑升级:在进程不被关闭的情况下完成新版本的安装,并优雅退出就旧的子进程

信号的使用:以nginx为命令

平滑升级

步骤:

第零步:准备操作
systemctl status nginx
# 先查看 nginx 程序是否启动

systemctl start nginx
# 若没启动

vim /apps/nginx/conf/nginx.conf
# 然后进入 nginx 配置文件


#user  nobody;
worker_processes  1;
# 将 worker_processes  1;改为worker_processes  2;
# 将 worker 进程数从1修改为2(即将其从1核变为2核)

nginx -s reload
# 重新加载 nginx 配置文件

ps aux | grep nginx
# 查看 nginx 的进程
# 现在正常情况应该是1个master进程以及2个worker进程
第一步:备份旧版本,安装新版本

先将旧版本 nginx 的二进制文件进行备份,以防万一

cd /apps/nginx/sbin/
# 进入放有二进制文件的文件夹中

cp /apps/nginx/sbin/nginx /data/nginx.jiu
# 将其备份并改名方便分辩

再编译新版本nginx的二进制文件

wget https://nginx.org/download/nginx-1.20.2.tar.gz -P /data
# 获取新版本安装
# 我的版本是1.18.0,所以在这里使用1.20.2进行升级处理

tar xf nginx-1.20.2.tar.gz
# 解压安装包

cd /data/nginx-1.20.2
# 进入安装包

nginx -V
# 查看安装的模块

./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
# 先对新版本 nginx 进行编译,后面的模块要和你nginx -V显示的一样
# 如果需要的新的模块可以在后面添加

# 注意安装的位置要和老版本的一致

make -j2
# 注意这里只需要make,不需要make install

mv /apps/nginx/sbin/nginx   /apps/nginx/sbin/nginx.bak
# 为了方便将新二进制文件移进来

cp objs/nginx /apps/nginx/sbin/
# 拷贝新版本

用命令向旧版本master进程发送USR2信号(在处理完请求后关闭work子进程)

kill -USR2 `cat /apps/nginx/run/nginx.pid`
# 向旧 master 进程发送 USR2 信号
第二步:完成新版本安装

这个时候新老版本的nginx同时存在,但新用户的请求只会发给新进程,旧进程不再接受

ps auxf|grep nginx
# 现在会产生 2个 master 进程
第三步:优雅关闭

关闭旧master的worker进程

(自选)马上要优雅关闭,若处于非服务状态下可以使用下面
        的命令,使worker进程开始任务,方便观察优雅关闭过程

dd if=/dev/zero of=/apps/nginx/html/m.img bs=1G count=10
# 新建 10G 的文件 m.img

# 再开一台新的虚拟机
wget --limit-rate=1M http://192.168.91.100/m.img
# 用新虚拟机下载大文件

因为用的是优雅关闭所以会在worker完成任务后再退出

kill -WINCH `cat /apps/nginx/run/nginx.pid.oldbin`
# 优雅关闭
第四步:升级 level up

测试新版本nginx是否正常运行

wget --limit-rate=1M http://192.168.91.100/m.img
# 再选择一台新的虚拟机下载大文件

ss -ntap|grep 80
# 查看是否开了一个新的worker

若不能正常运行,则将旧版本nginx发送hup信号,让其重新生成worker进程,也就是回滚

回滚

当升级成新版本的nginx不能正常运行时,唤起老版本的nginx的master进程,并关闭新版本的

kill -HUP `cat /apps/nginx/run/nginx.pid.oldbin`
# 该命令可以唤醒老的master进程

kill -QUIT `cat /apps/nginx/run/nginx.pid`
# 退出新版本的master进程

信号

nginx 命令支持向其发送信号,实现不同功能

nginx 当做单独命令使用有以下选项

nginx -h
# 查看信号的帮助
# 若无法使用nginx命令,请建立软连接
# 即:
ln -s /apps/nginx/sbin/nginx /usr/sbin
#          ↑ 
#    /你nginx安装的位置/sbin/nginx
常用的信号
  • TERM或INT:快速停止nginx服务
  • QUIT:平缓停止nginx 服务
  • HUP:使用新的配置文件启动进程,平缓停止原有进程
  • USR1: 重新打开日志文件,常用户日志切割
  • USR2:使用新版本的nginx文件启动服务,之后平缓停止原有nginx进程
  • WINCH:平滑停止worker process,用于nginx服务器平滑升级
查看版本信息
nginx -v
# 显示版本信息

nginx -V
# 显示详细信息

常用发送信号
nginx -s   stop   
# 立即关闭nginx

nginx -s   quit   
# 优雅退出   不影响业务的状态下退出

nginx -s   reload 
# 重新加载  
分割日志

首先你要找到日志文件在哪

nginx日志文件默认存放在 /var/log/nginx目录下,但如果nginx没有使用默认位置的话,就需要进入nginx的配置文件中查找

检查语法格式
nginx -t
# 检查配置文件中的语法格式是否正确

nginx的配置文件

Nginx的配置文件的组成部分:

主配置文件:nginx.conf

子配置文件: include conf.d/*.conf

全局配置

模块
  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能

  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等

  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持

  • Stream服务模块: 实现反向代理功能,包括TCP协议代理

  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

关闭版本和修改版本信息
vim /apps/nginx/conf/nginx.conf
# 进入 nginx 的主配置文件

server_tokens off;
# 在http语句中添加

nginx -s reload
# 重新加载配置文件

curl -I http://192.168.64.100/
# 查看该服务器的配置信息

修改进程数
vim /apps/nginx/conf/nginx.conf
# 进入 nginx 的主配置文件

worker_processes  1;
# 这是原来的配置,只有一个进程(worker)
# 把 1 修改为 2 就会有2个 worker
worker_processes  auto;
# 当为 auto 时,进程数和你的内核数相同

ps axo pid,cmd,psr,ni|grep nginx
# 可以看到 nginx 的 worker 数量

进程与内核绑定

将Nginx工作进程绑定到指定的CPU核心,保证此进程不会运行在其他核心上,极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

vim /apps/nginx/conf/nginx.conf
# 编辑主配置文件

worker_processes  2;
worker_cpu_affinity 00000001 00000010;
# 将任务绑定到内核1和内核2上

ps axo pid,cmd,psr,ni|grep -v grep |grep nginx|sort -n
# 查看进程,多次使用可以查看是否固定内核

worker优先级

当你想将nginx的work进程的优先级调高 可以使用nice设置

vim /apps/nginx/conf/nginx.conf
# 编辑主配置文件

worker_priority -20;
# 工作进程优先级,-20~19数值越小,优先级越高

设置worker打开的文件的上限

所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致

vim /apps/nginx/conf/nginx.conf
# 修改配置文件

worker_rlimit_nofile 65536;
# 修改文件可以打开的最大数量

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx的安装和全局配置 的相关文章

  • 如何在部署应用程序 Elastic beanstalk 上修改 NGINX 配置

    我需要向 nginx conf 添加一些位置 以便环境 URL 指向 app php 我已经使用 vi 修改了该文件 重启 NGINX 就可以了 但我需要在使用时自动加载此配置电子部署 我已阅读并尝试过 https docs aws ama
  • Git 每次提交和拉取时都要求输入密码

    我正在使用带有 Git 扩展的 Visual Studio 2012 我正在使用位桶来存储项目 每次 每当我想要推送或拉取 Git 时 都会询问我帐户密码 在 Windows 8 中 Thanks 您可以使用gitcredentials h
  • 在命令行中从 github 下载特定文件,而不是克隆整个存储库

    如何使用命令行从 github 下载 2 个文件 内容如下 git fetch git github com username Project git file1 git fetch git github com username Proj
  • 如何为 github 中两个分支之间的单个文件生成差异

    我需要为单个文件生成一个 diff 以显示两个版本之间的差异 这实际上是 github 中的标签 然后我想通过电子邮件将此差异发送给某人 因此差异的 github URL 将是理想的选择 github 比较视图将允许我对所有更改的文件执行此
  • git 分叉是如何工作的?

    所以我登录了 github 并 fork 了一个项目 每次原始存储库更新时 我的分叉存储库都会更新吗 或者我应该每次都从原始存储库进行分叉 这样我就不会错过对原始存储库所做的任何新更改 分叉是存储库的副本 分叉存储库允许您自由地尝试更改 而
  • Mono 3.0、Ubuntu 12.10、Nginx 和 ServiceStack

    根据 ServiceStack 网站的说法 使用 Mono 在 Linux 上启动和运行 ServiceStack 应该很容易 我已经在系统 Ubuntu 12 10 上安装了 nginx mono 3 0 和 fastcgi 我用过thi
  • 我可以从命令行向 github 添加问题吗?

    我是 git 新手 我希望能够通过 github 绘制我的项目的计划和进度 问题是 这需要在 github com 上使用浏览器进行大量点击 并且我希望能够通过使用命令行程序来自动执行该任务 github 有命令行界面吗 有一个ghi ge
  • 如何避免开发人员将凭证推送到 bitbucket?

    我们有一个应用程序 它使用 JSON 文件来定义数据库和其他 API 的连接字符串和凭据 理想情况下 这些凭证作为变量添加到 bitbucket 存储库中 并在 Jenkins 的构建期间进行替换 开发商在当地与他们合作时更换了他们 我们需
  • 如何使用“gem install”命令从私有 GitHub 存储库安装 gem

    如何在本地安装托管在 GitHub 上的私人存储库中的 gem 特别是 我们通过gem install命令而不是在 Bundler 中使用 因为它是一个命令行工具 我尝试这样做 gem install githubname repo s h
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • 在使用 Let's Encrypt 和 Nginx 进行的 SSL Labs 测试中,如何在所有类别中获得 A+ 100 分?

    在 www ssllabs com 测试我的 SSL 证书时 我试图在所有类别上获得 100 分 然而 我正在努力争取所有分数都达到 A 和 100 关于我应该使用什么 NGINX 配置有什么建议吗 或者我应该如何生成 Let s Encr
  • Access-Control-Allow-Origin值跨站缓存

    我正在尝试编写一个 nginx 配置来处理 http 和 https 上的两个站点 只要客户端从不访问这两个站点 它似乎就可以工作 但如果它们这样做 就会出现缓存 跨站点问题 Allow cross origin location eot
  • 如何禁用 GitHub 中的拉取请求?

    我试图了解如何禁用 github 中的 拉取请求 问题一 我们正在尝试使用变基工作流程 这意味着如果不是快速推进 那么使用拉取请求可能会有害 一种解决方案 为我想要禁用拉取请求的分支设置分支权限 或者将我添加为任何进入 master 的内容
  • WordPress 3.0 .htaccess 到 nginx 重写规则的转换

    RewriteEngine On RewriteBase BASE uploaded files RewriteRule files index php L RewriteCond REQUEST URI wp content plugin
  • Nginx 与 Daphne 给出 502 Bad Gateway

    由于 Django Channels 和 uwsgi 出现问题 我决定用 daphne 替换 uwsgi 关注后this http masnun rocks 2016 11 02 deploying django channels usin
  • 使用 Github Actions 进行部署

    我在用Github作为我的源代码控制 并使用Github 操作作为我的 CI CD 解决方案 我在某处有一个专用的 Windows Server 它接受发表我的仓库的版本 我有一个 Github Action 它可以构建 测试 发布和部署
  • 如何使用 Nginx 将下划线替换为破折号

    我第一次使用Nginx 对它基本上一无所知 我需要将 100 多个 URL 中的 替换为 我想一定有一种简单的方法可以用 Nginx 来做到这一点 但在 Google 上找不到任何东西 Thanks Edit 我的网址例如 http www
  • 如何在同一存储库中的 github 操作之间共享代码?

    假设我想要两个工作流程build yml and release yml在我的仓库中 第一个应该构建项目 假设使用 CMake 第二个应该构建项目并使用构建的二进制文件创建 GitHub 版本 项目构建代码在两个文件之间重复 如何在它们之间
  • Git 删除其他人从远程所做的最后提交

    所以 我的情况是 错误地 我已经授予某人对我的分支的承诺 现在 在我的本地 我已经进行了提交 当我尝试将其推送到远程时 它显示远程在前面 因为对方已经将他的代码推送到了这个分支并进行了多次提交 现在 我可以从远程删除这些提交而不将拉取到本地

随机推荐

  • SQL select into from 和 insert into from 语句

    在刷笔试题的时候看到一个表的复制的问题 以前没见过 写一下 用于创建表的备份复件 复制表 两条SQL语句 1 insert into tableName2 column name1 column name2 select column na
  • >> << & 操作符总结

    lt lt 符号 扩大多少倍 Integer num 16 num num lt lt 2 System out println num gt gt gt gt gt num gt gt 符号 缩小多少倍 Integer num 16 nu
  • 沈师 PTA 数据库题目及部分解析 第五章

    判断题 1 当主外健不能保证参照完整性和数据一致性时 还可以选择触发器来实现 T 2 域完整性是保证数据完整性的重要约束之一 T 3 当用户违反了参照完整性时 DBMS会采取一些策略加以处理 包括拒绝 级联操作和设置为空值 T 4 参照完整
  • m1 mac安装docker、k8s(成功案例)

    m1 mac安装docker k8s 成功案例 一 安装docker 二 安装kubernetes ps 系统 macos 12 monterey 一 安装docker 1 先要清理旧数据 讲道理这一步重不重要我还真没试过 毕竟在docke
  • 问题 C: 销售排行榜

    题目描述 你的任务是帮助淘宝网店店长整理销售数据 根据累计的销售记录 将所有商品按销售数量降序排列 输入 输入包括多行数据 行数小于100000 每行数据包括4个信息 分别是商品名称 销售数量 单价 成交日期 商品名称由小写字母组成 且不超
  • Android JNI

    选择你的到处路径和名称JAR file 直接Finish 这样的jar包里面只包括编译后的AdMob class 很小很干净 然后打开羽化的Unity工程AdMobTest File gt Open Project 双击UnityAdMob
  • Linux下安装ORACLE(一周成果、全是干货!)

    文章目录 一 安装前言 1 闲聊 2 提前知道的事 二 安装准备 1 Linux发行版本 ret hat7 4 更换yum源 传送门 https blog csdn net qq 42956179 article details 10961
  • 学习笔记:MongoDB命令的基础学习,使用springboot实现mongodb视图创建

    学习笔记 MongoDB命令的基础学习 使用springboot实现mongodb视图创建 创建集合 db createCollection my 查看集合 show collections 删除集合 db my drop 插入一条 没有c
  • Python描述符是什么?

    在Python中 通过使用描述符 程序员可以在引用对象属性时定制要完成的工作 接下来我们一起来聊聊Python描述符相关的知识 本质上 描述符是一个类 但它定义了另一个类中属性的访问模式 换句话说 一个类可以将属性管理全权委托给描述符类 描
  • 计算机视觉各领域前沿算法积累

    目录 一 目标检测 1 SSD 2 PaddleDetection 3 mmdetection 4 mediapipe 二 单目标跟踪 1 pytracking 2 pysot 3 SiamMask 4 siammask e 5 Alpha
  • MATLAB神经影像学数据的多模态多元模式分析方法

    在过去的十年中 多变量模式分析的使用在功能磁共振成像 fMRI 研究中变得流行 这并不奇怪 因为 MVPA 与传统且更常用的单变量分析相比具有几个优势 首先 MVPA 可以比单变量方法在区分感兴趣的条件方面提供更高的灵敏度 因为它考虑了体素
  • js栈内存和堆内存与垃圾回收机制

    v8作为javascirpt引擎 对变量的存储主要有两种位置 栈存储和堆存储 栈内存存储基本类型的变量 如Number String boolen undefined null 以及对对象和数组变量的指针 对象是动态分配内存 数组的初始化方
  • 《深入理解计算机系统》怎样学?个人看法和资源分享

    前言 我与 深入理解计算机系统 有三次接触吧 真有缘 第一次 在我读专科大二的时候 自己就看过一遍 深入理解计算机系统 想想就是放寒假前看完的 和现在的时间也差不了多少 第二次 在专科大三下学期又重新重头看起了本书 其主要原因为第一遍看的比
  • [面试题] 递增序列生成

    给定一个表达式 f i j 2 i 5 j i 和 j 为正整数 使得f i j 严格递增 求这个递增序列 思路 和 剑指OFFER 中求丑数的题目很像 序列中第N个数 必然是是前N 1个数乘以 2 或者乘以5 中大于第N 1个数的最小值
  • 高并发场景下的限流策略

    高并发场景下的限流策略 性能调优是针对于代码本身的不规范性和系统资源的瓶颈的 当计算机的硬件资源达到瓶颈的时间已经无法调优了 高并发场景下一方面通过缓存 异步化 服务化 集群去增加整个系统的吞吐量 另一方面通过限流 降级来保护系统 什么是限
  • 机器学习D14——随机森林

    随机森林 是bagging装袋法的代表 弱学习器只可以是决策树 简介 随机森林是一种有监督学习算法 是以决策树为基学习器的集成学习算法 随机森林非常简单 易于实现 计算开销也很小 在分类和回归上表现出非常惊人的性能 因此 随机森林被誉为 代
  • JavaFX 多线程之 Task、Service、ScheduledService

    JavaFX 多线程之 Task Service ScheduledService 一 开发环境 二 javafx concurrent 包 1 Worker 接口 2 Task 类 取消 Task 显示后台 Task 的进度 3 Serv
  • redis配置与优化

    文章目录 redis配置与优化 关系型数据库 非关系型数据库 关系型数据库和非关系型数据库区别 对事务性的支持不同 非关系型数据库产生背景 总结 Redis简介 Redis 具有以下几个优点 使用场景 哪些数据适合放入缓存中 Redis为什
  • mysql提取.sql备份文件中的单个表以及表数据

    背景 随着业务模块的不断在增多 数据库mysql容量也是越来越大 做测试时 整个备份还原比较耗费时间 由于有时候仅仅需要单个表或者少数几个表 要想从整个备份文件中提取指定的表以及数据 需要以下方法 说明 mysql常规备份还原后续补充 废话
  • nginx的安装和全局配置

    目录 何为nginx Nginx 功能介绍 基础特性 nginx架构 Nginx 进程结构 nginx 模块 模块分类 使用方式 编译安装nginx 第一步 获取安装包 第二步 安装依赖 第三步 创建用户nginx 第四步 解压安装包 第五