Nignx的搭建与核心配置

目录

一、Nginx是什么?

1、Nginx概述

2、Nginx模块与作用

3、Nginx三大作用:反向代理,负载均衡,动静分离

nginx七层负载均衡调度算法(六种)

1、轮询(默认调度算法)

2、加权轮询

3、ip_hash(IP哈希)

4、最少连接数 least_conn

5、响应时间 fair(需编译安装第三方模块 ngx_http_upstream_fair_module)

6、url_hash(URL分配 )(需编译安装第三方模块 ngx_http_upstream_hash_module)

upstream backendserver {server 192.168.0.14:80 max_fails=2 fail_timeout=10s;server 192.168.0.15:80 max_fails=2 fail_timeout=10s;hash $request_uri;}④动静分离:

二、Nginx和Apache的差异

1、Apache:同步多进程模型:一个连接对应一个进程(高稳定)

2、Nginx:异步非阻塞模型:多个连接(万级别)对应一个进程(高进程)

三、安装nginx

1、编译安装

2、yum安装

四、nginx的信号使用

五、nginx的核心配置指令

1、访问状态统计配置

第一步:查看已安装的nginx是否包含http_stub_status模块

第二步:修改nginx.conf配置文件,指定访问位置并添加stub_tatus配置(修改之前进行备份)

第三步:重启服务后进行访问测试

2、基于授权的访问控制

第一步:生成用户密码认证文件

第二步:修改主配置文件相应的目录,添加认真配置

Thank you for using nginx.3、基于客户端访问控制

第一步:在主配置文件中添加控制规则

第二步重启服务

4、基于域名的nginx虚拟主机

第一步:为虚拟主机提供域名和ip的映射

第二步:为虚拟主机准备网页文档

第三步:还原nginx主配置文件

第四步:修改主配置文件

第五步:重启nginx后可进行访问测试

5、基于ip的nginx虚拟主机

第一步:添加虚拟网卡,修改主配置文件

第二步:检查配置文件,重启服务

第三步:客户端上访问测试

6、基于端口的nginx虚拟主机

第一步:修改主配置文件

第二步:检查配置文件,重启服务

第三步:客户端上访问测试


一、Nginx是什么?

1、Nginx概述

①一款高性能,轻量级的web服务软件

②系统资源消耗低

③对http并发连接的处理能力高

④单台物理服务器可支持30000-50000个并发请求。

Nginx(发音同"engine x")是一个高性能的反向代理和 Web服务器软件,最初是由俄罗斯人 Igor Sysoev开发的。Nginx 的第一个版本发布于2004年,其源代码基于双条款 BSD许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。Nginx 是互联网上最受欢迎的开源 Web 服务器之一,它不仅提供了用于开发和交付的一整套应用技术,还是应用交付领域的开源领导者。

2019年 3月,著名硬件负载均衡厂商F5宣布收购 Nginx,Nginx成为F5的一部分。 F5表示,将加强对开源和 Nginx 应用平台的投资,致力于Nginx 开源技术、开发人员和社区的发展,更大的投资将为开放源码计划注人新的活力,会主办更多的开放源码活动,并产生更多的开放源码内容。

2、Nginx模块与作用

①main模块:全局配置模块,所有模块都要执行遵守配置运行nginx服务器的用户,worker_process数(进程)、nginx进程pid存放路径、错误日志存放路径、配置文件的引入等

②stream服务模块:实现反向代理功能,包括tcp协议代理

③邮件服务模块:主要用于支持nginx的邮件服务。对pop3协议,imap协议和smtp协议的支持

第三方模块:二次开发,为了扩展Nginx服务器应用,完成开发者自定义功能json支持等

④events模块:影响nginx服务器与用户的网络连接

events {                                              #events模块设置

woker_connections 65536;                #设置单个工作进程最大并发连接数

use epoll;                                           #事件驱动类型选择为epoll

accept_mutex on;                              #同一时刻一个请求轮流由work进程除了,即轮询

multi_accept on;                                #每个工作进程同时接受多个网络连接

}

⑤http模块:跟web服务相关,主要用于扩展标注http功能,让Nginx能处理一些特殊的服务,包含几个子模块

自定义服务日志,允许sendfile方式传输文件,连接超时时间,单连接请求数上限,flash多媒体传输,解析geoip请求,网络传输压缩,安全协议ssl支持等

location模块:url网址定位

server模块:服务模块

配置80端口监听、虚拟主机、DNS域名解析等

auth_basic模块:对网页设置用户名密码

gzip模块:压缩

proxy模块:设置后端IP地址、端口号及http和加密的https

ssl模块:https加密

3、Nginx三大作用:反向代理,负载均衡,动静分离

①反向代理:在服务端配置,客户端访问服务器A,服务器A为代理服务器,将客户服务再转发到服务器B

作用:缓存,将服务器的响应缓存,存在自己的内存中,减少服务器压力

负载均衡,将用户请求分配给多个服务器

访问控制

②正向代理:在客户端配置,配置完了再去访问具体服务,即代理服务器代理了客户端,再去和目标服务器 进行交互

作用:提高访问速度

隐藏客户端真实ip地址

③负载均衡:

分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

nginx七层负载均衡调度算法(六种)

1、轮询(默认调度算法)

特点:每个请求按时间顺序逐一分配到不同的后端服务器处理。
适用业务场景:后端服务器硬件性能配置完全一致,业务无特殊要求时使用。

upstream backendserver {
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

2、加权轮询

特点:指定轮询几率,weight值(权重)和访问比例成正比,用户请求按权重比例分配。
适用业务场景:用于后端服务器硬件性处理能力不平均的情形。

upstream backendserver {
server 192.168.0.14:80 weight=5 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 weight=10 max_fails=2 fail_timeout=10s;
}

3、ip_hash(IP哈希)

特点:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session会话保持问题。
适用业务场景:适用于需要账号登录的系统,会话连接保持的业务。

upstream backendserver {
ip_hash;
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

4、最少连接数 least_conn

特点:按nginx反向代理与后端服务器之间的连接数,连接数最少的优先分配。

适用业务场景:适用于客户端与后端服务器需要保持长连接的业务。

upstream backendserver {
least_conn; server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

 

5、响应时间 fair(需编译安装第三方模块 ngx_http_upstream_fair_module)

特点:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
适用业务场景:对访问响应速度有一定要求的业务。

upstream backendserver {
fair;
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

 

6、url_hash(URL分配 )(需编译安装第三方模块 ngx_http_upstream_hash_module)

特点:按访问url的hash结果来分配请求,使同一个url访问到同一个后端服务器。

适用业务场景:适用于后端服务器为缓存服务器时比较有效。

upstream backendserver {
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
hash $request_uri;
}

④动静分离:

采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。

在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式,通过使用Nginx提高网站的响应速度,优化用户体验

二、Nginx和Apache的差异

1、Apache:同步多进程模型:一个连接对应一个进程(高稳定)

①rewrite更强大(rewrite主要功能是是实现统一资源定位符url的跳转)

②模块多,基本想到的都可以找到

③少bug,更加稳定(nginx相对较多)

④php支持比较简单(nginx需要配合其他后端使用)

⑤处理动态请求更有优势(nginx更适合静态与反向)

2、Nginx:异步非阻塞模型:多个连接(万级别)对应一个进程(高进程)

①轻量级,采用C编写,占用更少的内存与资源

②.抗并发/高并发,以epoll and kqueue 作为开发模型,负载能力高,高并发下能够保持                     低资源低消耗高性能(apache在PHP处理慢或前端压力很大时,容易出现进程数飙升                     从而拒绝服务)

③.处理静态文件好,静态处理性能比apache高三倍以上

④.设计高度模块化,编写模块相对简单

⑤.配置简洁,正则配置更简单,且更改完可以使用 -t 测试(apache配置复杂,重启时发                     现出错,会很崩溃)

⑥.作为负载均衡服务器,支持七层负载均衡,可以有效防止ddos攻击

⑦.本身是一个反向代理服务器,也可以作为邮件代理服务器使用

⑧.支持热部署,支持在线升级

三、安装nginx

1、编译安装

关闭防火墙,将安装nginx所需要的软件包传到/opt目录下

nginx安装官网:nginx: download

systemctl stop firewalld
systemctl disable firewalld
setenforce 0# 将压缩包传入到/opt目录下
cd /opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz

安装依赖包

#nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx

tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0/
mkdir /apps/nginx -p./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_modulemake -j2 && make installchown -R nginx.nginx /apps/nginx

创建软链接后直接nginx启动

ln -s /apps/nginx/sbin/nginx /usr/sbin/

创建nginx自启动文件

vim /usr/lib/systemd/system/nginx.service[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

重新加载配置,设置开机自启并开启服务

systemctl daemon-reload          #重新加载配置
systemctl enable --now nginx     #开机自启并立即启动
systemctl status nginx.service   #查看服务状态(验证

2、yum安装

Centos7 需要安装epel源cd /etc/yum.repos.d
vim epel.repo
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
gpgcheck=0yum install -y epel-releaseyum install nginx -y

四、nginx的信号使用

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

nginx -h      
#查询nginx信号使用规则

常用信号

信号解释
nginx -v显示版本
nginx -V

显示编译详细情况、模块等信息

nginx -t

检查语法格式

nginx -T打印当前配置
nginx -s发送信号
nginx -s stop立即关闭
nginx -s quit优雅退出,不影响业务的状态下退出
nginx -s reload重新加载配置文件
nginx -s  USR1分割日志
nginx -s  USR2优雅升级
nginx -g 'user zhangsan;' 以张三身份运行,默认是以nginx身份
nginx -g 'daemon off;'前台运行命令

五、nginx的核心配置指令

1、访问状态统计配置

第一步:查看已安装的nginx是否包含http_stub_status模块

cd /usr/local/nginx/sbin
#根据安装路径自由修改/apps/nginx/sbin也可
nginx -V

第二步:修改nginx.conf配置文件,指定访问位置并添加stub_tatus配置(修改之前进行备份)

cd /usr/local/nginx/conf/              #/apps/nginx/conf同理
cp nginx.conf nginx.conf.bak           #备份
vim nginx.confserver {listen       80;server_name  www.clj.com;charset utf-8;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}##添加 stub_status 配置location /status {				##访问位置为/statusstub_status on;				##打开状态统计功能access_log off;				##关闭此位置的日志记录}

第三步:重启服务后进行访问测试

systemctl restart nginx.service

浏览器访问 http;//192.168.79.210/status

Active connections ∶ 表示当前的活动连接数;
server accepts handled requests∶表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数已处理的请求数。
可curl http∶//192.168.79.210/status 结合 awk与if 语句进行性能监控。

2、基于授权的访问控制

第一步:生成用户密码认证文件
yum install -y httpd-tools
#安装工具htpasswd -c /usr/local/nginx/passwd.db zhangsan
#生成用户密码认证文件(注意路径chown nginx /usr/local/nginx/passwd.db 
chmod 400 /usr/local/nginx/passwd.db
#修改属性和赋予执行权限

第二步:修改主配置文件相应的目录,添加认真配置
vim /usr/local/nginx/conf/nginx.conf
#路径/apps/nginx/conf/nginx.conflocation / {root   html;index  index.html index.htm;#添加认证配置auth_basic "secret";					#设置密码提示框文字信息auth_basic_user_file /usr/local/nginx/passwd.db;}


Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.
3、基于客户端访问控制

访问控制规则如下:
deny IP/IP段:拒绝某个IP或IP段的客户端访问。
allow IP/IP段:允许某个IP或IP段的客户端访问。
规则从上往下执行,如果匹配到则停止,不会再往下继续匹配。

第一步:在主配置文件中添加控制规则
vim /usr/local/nginx/conf/nginx.conf
#注意路径/apps/nginx/conf/nginx.conflocation / {root   html;index  index.html index.htm;auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;# 添加控制规则deny 192.168.80.77;					#拒绝访问的客户端IPallow all;							#允许其他所有客户端访问}

第二步重启服务
systemctl restart nginx.service 

第三步:被拒绝的客户端访问测试

4、基于域名的nginx虚拟主机

第一步:为虚拟主机提供域名和ip的映射
echo "192.168.79.210 www.zhuo.com www.xunizhuo.com" >> /etc/hosts

第二步:为虚拟主机准备网页文档
mkdir -p /var/www/html/zhuo/
mkdir -p /var/www/html/xunizhuo/
echo "<h1>www.zhuo.com</h1>" > /var/www/html/zhuo/index.html
echo "<h1>www.xunizhuo.com</h1>" > /var/www/html/xunizhuo/index.html

第三步:还原nginx主配置文件

之前还做过访问控制,多以直接将访问控制进行还原

cd /usr/local/nginx/conf           #/apps/nginx/conf路径同理 
cp nginx.conf.bak nginx.conf       #还原主配置文件

第四步:修改主配置文件
vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf同理server {listen       80;server_name  www.xunizhuo.com;						#设置域名			charset utf-8;									#设置网页字符集access_log  logs/xunizhuo.com.access.log;			#设置日志名location / {root   /var/www/html/xunizhuo;					#设置www.bxb.com的工作目录index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       80;			server_name  www.zhuo.com;						#设置域名charset utf-8;									#设置网页字符集access_log  logs/zhuo.com.access.log;			#设置日志名location / {root   /var/www/html/zhuo;					#设置www.bxb.com的工作目录index  index.html index.htm;}

第五步:重启nginx后可进行访问测试

5、基于ip的nginx虚拟主机

第一步:添加虚拟网卡,修改主配置文件
ifconfig ens33:0 192.168.79.211/24vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf同理server {listen       192.168.79.210:80;				#修改监听的为ipserver_name  www.xunizhuo.com;charset utf-8;access_log  logs/xunizhuo.com.access.log;location / {root   /var/www/html/xunizhuo;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       192.168.79.211:80;				#修改监听的为ipserver_name  www.zhuo.com;charset utf-8;access_log  logs/zhuo.com.access.log;location / {root   /var/www/html/zhuo;index  index.html index.htm;}

第二步:检查配置文件,重启服务
nginx -t
systemctl restart nginx.service
第三步:客户端上访问测试
curl 192.168.170.111:80
curl 192.168.170.113:80

6、基于端口的nginx虚拟主机

第一步:修改主配置文件
vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf同理server {listen       192.168.79.210:666;				#修改监听的为ip的666端口server_name  www.xunizhuo.com;charset utf-8;access_log  logs/xunizhuo.com.access.log;location / {root   /var/www/html/xunizhuo;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       192.168.79.211:888;			    #修改监听的为ip的888端口server_name  www.zhuo.com;charset utf-8;access_log  logs/zhuo.com.access.log;location / {root   /var/www/html/zhuo;index  index.html index.htm;}

第二步:检查配置文件,重启服务
nginx -t
systemctl restart nginx.service
第三步:客户端上访问测试
curl 192.168.170.111:666
curl 192.168.170.113:888

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.14日学习打卡----初学Zookeeper(一)

2.14日学习打卡 目录: 2.14日学习打卡Zookeeper概念一. 集中式到分布式单机架构集群架构什么是分布式三者区别 二. CAP定理分区容错性一致性可用性一致性和可用性的矛盾一致性和可用性如何选择 三. 什么是Zookeeper分布式架构Zookeeper从何而来Zookeeper介绍 四. 应用场景数据发…

基于Embedding召回和DSSM双塔模型

文章目录 基于Embedding召回介绍基于Embedding召回算法分类I2I召回U2I召回 DSSM模型DSSM双塔模型层次 基于Embedding召回介绍 基于embedding的召回是从内容文本信息和用户查询的角度出发&#xff0c;利用预训练的词向量模型或深度学习模型&#xff0c;将文本信息转换成向量进行…

Windows7安装指南

概要&#xff1a; 本篇演示Windows7的安装过程 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 电脑开机按F2可进入BIOS 2、Windows7启动U盘 Windows7启动U盘作为Windows7的安装来源 该U盘的制作可参考笔者的文章 Windows制作Windows的U盘启动盘 Windows7没有USB…

mysql 锁详解

目录 前言 一、全局锁 二、表级锁 三、行锁 前言 为什么要设计锁&#xff0c;锁设计初衷是为了解决多线程下并发问题。出现并发的时候用锁进行数据同步&#xff0c;避免因并发造成了数据错误(数据覆盖)。可见锁的重要性&#xff0c;并不是所有的数据库都有锁。比如Redis&a…

51单片机学习(3)-----独立按键控制LED的亮灭状态

前言&#xff1a;感谢您的关注哦&#xff0c;我会持续更新编程相关知识&#xff0c;愿您在这里有所收获。如果有任何问题&#xff0c;欢迎沟通交流&#xff01;期待与您在学习编程的道路上共同进步了。 目录 一. 器件介绍及实验原理 1.独立按键 &#xff08;1&#xff09;独…

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

Vue图片浏览组件v-viewer&#xff0c;支持旋转、缩放、翻转等操作 之前用过viewer.js&#xff0c;算是市场上用过最全面的图片预览。v-viewer&#xff0c;是基于viewer.js的一个图片浏览的Vue组件&#xff0c;支持旋转、缩放、翻转等操作。 基本使用 安装&#xff1a;npm安装…

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(一)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(一) 大家好 我是寸铁&#x1f44a; 总结了一篇刷题关于树、dfs、bfs、回溯、递归的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 105. 从前序与中序遍历序列构造二叉树 模拟分析图 代码实现 /*** Definition for a binary tre…

说一下 JVM 运行时数据区 ?

目录 一、程序计数器&#xff08;Program Counter Register&#xff09; 二、Java 虚拟机栈&#xff08;Java Virtual Machine Stacks&#xff09; 三、本地方法栈&#xff08;Native Method Stack&#xff09; 四、Java 堆&#xff08;Java Heap&#xff09; 五、方法区&…

Imagewheel私人图床搭建结合内网穿透实现无公网IP远程访问教程

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

图——最小生成树实现(Kruskal算法,prime算法)

目录 预备知识&#xff1a; 最小生成树概念&#xff1a; Kruskal算法&#xff1a; 代码实现如下&#xff1a; 测试&#xff1a; Prime算法 &#xff1a; 代码实现如下&#xff1a; 测试&#xff1a; 结语&#xff1a; 预备知识&#xff1a; 连通图&#xff1a;在无向图…

代码随想录第二十三天 回溯算法 77.组合 216.组合总和 17.电话号码的字母组合

回溯算法 LeetCode 77 组合 题目描述 思路 递归函数的返回值以及参数 在这里要定义两个全局变量&#xff0c;一个用来存放符合条件单一结果&#xff0c;一个用来存放符合条件结果的集合。 代码如下&#xff1a; vector<vector<int>> result; // 存放符合条件…

【Java EE初阶十六】网络原理(一)

在网络原理中主要学习TCP/IP四层模型中的重点网络协议 1. 应用层 1.1 应用程序与协议 应用层是和程序员接触最密切的&#xff1b; 应用程序&#xff1a;在应用层这里&#xff0c;很多时候都是程序员自定义应用层协议&#xff08;步骤&#xff1a;1、根据需求&#xff0c;明确…

程序员必备技能----删库跑路大总结

删库跑路大总结&#xff0c;各个都是大杀器&#xff0c;破坏性太大&#xff0c;轻易不要尝试。 删除linux根目录&#xff0c;用户目录&#xff0c;其实还可以增加一个删除/etc。删除&#xff08;清除&#xff09;数据库。删除redis缓存和持久化文件。删除mongodb库。git push …

MCAL知识点(二十七):TC275如何通过GPT12实现ABZ解码

目录 1、概述 2、代码实现 1、概述 GPT12 - General Purpose Timer Unit (GPT12):通用定时器单元,具备较为灵活的定时器结构,可以用来做定时器、事件计数、脉冲宽度测量、产生PWM、频率调制、ABZ编码器增量测量。文章记录一下如何通过GPT12实现编码器ABZ信号的测量。 注意…

c#创建安装windows服务

背景:最近在做设备数据对接采集时,遇到一些设备不是标准的Service-Client接口,导致采集的数据不够准确;比如设备如果中途开关机后,加工的数量就会从0开始重新计数,因此需要实时监控设备的数据,进行叠加处理;考略到工厂设备比较多,实时监听接口的数据为每秒3次,因此将…

week04day01(爬虫)

一. 爬虫 只爬取公开的信息&#xff0c;不能爬取未公开的后台数据 1.爬虫的合法性 法无禁止皆可为 -- 属于法律的灰色地带https://www.tencent.com/robots.txt -- 网站/robots.txt 可以查看禁止爬取的内容 2. URL Uniform Resource Locator 统一资源定位符https://www.…

【国产MCU】-CH32V307-通用定时器(GPTM)-单脉冲模式

通用定时器(GPTM)-单脉冲模式 文章目录 通用定时器(GPTM)-单脉冲模式1、单脉冲模式介绍2、驱动API介绍3、单脉冲使用实例本文将详细介绍如何使用CH32V307通用定时器的单脉冲模式。 1、单脉冲模式介绍 单脉冲模式可以响应一个特定的事件,在一个延迟之后产生一个脉冲,延迟…

Sora--首个大型视频生成模型

Sora--首个大型视频生成模型 胡锡进于2024年2月20日认为&#xff1a;台当局怂了 新的改变世界模拟器视觉数据转换视频压缩时空补丁&#xff08;Spacetime Laten Patches&#xff09;视频生成扩展变压器算法和模型架构结语 胡锡进于2024年2月20日认为&#xff1a;台当局怂了 **T…

AI Agent规划能力全面拆解

“规划今天和每天的工作&#xff0c;然后执行规划” -- 撒切尔夫人 规划&#xff0c;无论对于人类还是智能体而言&#xff0c;本质上是一种预先设定行动的过程&#xff0c;以期望通过这些行动达到特定的目标或解决特定的问题。制定一个好的规划涉及对未来情景的预测、资源的…

机器学习面试:逻辑回归与朴素贝叶斯区别

逻辑回归与朴素贝叶斯区别有以下几个方面: (1)逻辑回归是判别模型&#xff0c;朴素贝叶斯是生成模型&#xff0c;所以生成和判别的所有区别它们都有。 (2)朴素贝叶斯属于贝叶斯&#xff0c;逻辑回归是最大似然&#xff0c;两种概率哲学间的区别。 (3)朴素贝叶斯需要条件独立假设…