Nginx全家桶配置详解

news2024/11/29 4:36:35

请添加图片描述

  1. 源码包安装NGINX A,搭建Web Server,任意HTML页面,其8080端口提供Web访问服务,截图成功访问http(s)://[Server1]:8080并且回显Web页面。
  2. 保留Server1,但是不允许直接访问Server 1,再部署1套NGINX B,利用其实现反向代理功能,要求有且仅有访问http://elite.chaitin.com 可以访问到Web Server1的8080服务。(截图并详细说明NGINX上配置/参数)
  3. (加强提升题目)假设再加1套Web Server 2,其8080端口提供与Server 1相同服务,如何配置NGINX A实现访问http://elite.chaitin.com 的请求可以被负载分发到Server1或者Server2?
  4. 在上文题目2基础之上,增加节点NGINX B,如何配置实现高可用?demo演示当NGINX A故障时,流量自动切换到NGINX B(客户端访问几乎无感知)。详细说明VRRP协议在本题所述场景下的应用。
  5. (加强提升题目)在上文题目3基础之上,配置和验证NGINX支持哪些负载均衡算法及其效果?并结合NGINX配置参数详细说明不同负载均衡算法工作原理。
  6. (加强提升题目)在上文题目3基础之上,配置和验证主动和被动两种健康检查方式及其效果?并结合NGINX配置参数详细说明不同健康检查方式区别和工作原理。

文章目录

    • 要求1 nginx的部署
    • 要求2 nginx反向代理
    • 要求3 nginx负载均衡
    • 要求4 nginx高可用
    • 要求5 负载均衡算法
    • 要求6 健康检查

实验环境:

Ubuntu 20.04 64bit
实验前关闭防火墙和selinux
server18.140.24.100
server28.140.240.19

要求1 nginx的部署

要求1. 源码包安装NGINX A,搭建Web Server,任意HTML页面,其18080端口提供Web访问服务,截图成功访问http(s)://[Server1]:18080并且回显Web页面。

注:因为服务器的8080端口没有开放到外网访问,只开放了18080-18086的端口到外网;所以我将题目中的8080端口改成了18080端口来做实验(端口的改变不会影响实验的效果)
获取nginx源码包

wget https://nginx.org/download/nginx-1.22.1.tar.gz

请添加图片描述
安装源码编译环境

yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel -y

将此目录设置为nginx源码存放目录

/usr/local/src

将源码包移动到该目录下

[root@centos ~]# mv nginx-1.22.1.tar.gz /usr/local/src/

将源码包文件解压缩

[root@centos ~]# cd /usr/local/src/
[root@centos src]# tar xf nginx-1.22.1.tar.gz 

编译参数详解

[root@centos nginx-1.22.1]# ./configure --help

--prefix= 指向安装目录
--sbin-path 指向(执行)程序文件(nginx)
--conf-path= 指向配置文件(nginx.conf)
--pid-path= 指向 pid 文件( nginx.pid )--lock-path= 指向 lock 文件( nginx.lock)(安装文件锁定,防止安装文件被别人利用
或自己误操作。)
--user= 指定程序运行时的非特权用户
--group= 指定程序运行时的非特权用户组
--builddir= 指向编译目录
--with-rtsig_module 启用rtsig 模块支持(实时信号)--with-select_module 启用 select 模块支持(一种轮询模式,不推荐在高载环境下使用)
禁用:--without-select _module
--with-poll _module 启用 poll 模块支持(功能与select相同,与select特性相同,为
种轮询模式,不推荐在高载环境下使用)
--with-file-aio 启用file aio 支持(一种 APL文件传输格式
--with-ipv6 启用ipv6 支持
--with-file-aio 启用file aio 支持(一种 APL文件传输格式--with-ipv6 启用ipv6支持
--with-http_ssl_module 启用 ngx http_ssl module 支持(使支持https 请求,需已安装
openssl)
--with-http realip_module 启用 ngx http_realip_module 支持 这个模块允许从请求标
头更改客户端的IP 地址值,默认为关 )
--with-http addition module 启用 ngx http addition module 支持(作为一个输出过滤器,支持不完全缓冲,分部分响应请求 )
--with-http xslt module 启用 ngx http_xslt _module 支持(过滤转换 XML请求)
--with-http image filter module 启用 ngx http image filter module 支持 ( 传输JPEG/GIF/PNG 图片的一个过滤器)(默认为不启用。gd 库要用到) --with-http_geoip_module 启用 ngx_http_geoip_module 支持(该模块创建基于与 MaxMind GeoIP 二进制文件相配的客户端 IP 地址的 ngx_http_geoip_module 变量) --with-http_sub_module 启用 ngx_http_sub_module 支持(允许用一些其他文本替换 nginx 响应中的一些文本)
--with-http_dav_module 启用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL: 创建集合,COPY 和 MOVE 方法)默认情况下为关闭,需编译开启
--with-http_flv_module 启用 ngx_http_flv_module 支持(提供寻求内存使用基于时间的 偏移量文件)
--with-http_gzip_static_module 启用 ngx_http_gzip_static_module 支持(在线实时压 缩输出数据流)
--with-http_random_index_module 启用 ngx_http_random_index_module 支持(从 目录中随机挑选一个目录索引)
--with-http_secure_link_module 启用 ngx_http_secure_link_module 支持(计算和检 查要求所需的安全链接网址)
--with-http_degradation_module 启用 ngx_http_degradation_module 支持(允许在 内存不足的情况下返回 204 或 444 码)
--with-http_stub_status_module 启用ngx_http_stub_status_module支持(获取nginx 自上次启动以来的工作状态)
--without-http_auth_basic_module 禁用 ngx_http_auth_basic_module(该模块是可以 使用用户名和密码基于 http 基本认证方法来保护你的站点或其部分内容) --without-http_autoindex_module 禁用 disable ngx_http_autoindex_module 支持 (该模块用于自动生成目录列表,只在 ngx_http_index_module 模块未找到索引文件时发 出请求。)
--without-http_geo_module 禁用 ngx_http_geo_module 支持(创建一些变量,其值依 赖于客户端的 IP 地址)
--without-http_map_module 禁用 ngx_http_map_module 支持(使用任意的键/值对设 置配置变量)
--without-http_split_clients_module 禁用 ngx_http_split_clients_module 支持(该模 块用来基于某些条件划分用户。条件如:ip 地址、报头、cookies 等等) --without-http_referer_module 禁用 disable ngx_http_referer_module 支持(该模块 用来过滤请求,拒绝报头中 Referer 值不正确的请求)
--http-proxy-temp-path= 设定 http 代理临时文件路径
--http-fastcgi-temp-path= 设定 http fastcgi 临时文件路径 --http-uwsgi-temp-path= 设定 http uwsgi 临时文件路径
--http-scgi-temp-path= 设定 http scgi 临时文件路径
-without-http 禁用 http server 功能
--without-http-cache 禁用 http cache 功能
--with-mail 启用 POP3/IMAP4/SMTP 代理模块支持
--with-mail_ssl_module 启用 ngx_mail_ssl_module 支持

通用配置选项

--prefix=<path> 指定 Nginx 的安装路径,所有其他的路径都要依赖于该选项
--sbin-path=<path> 指定 Nginx 二进制文件的路径。如果没有指定,那么这 个路径将依赖于--prefix 选项
--conf-path=<path> 指定 Nginx 的配置文件的路径,如果在命令行没有指定 配置文件,那么将会通过这里指定路径。
--error-log-path=<path> 文件,除非有其它的配置。
--pid-path=<path> /var/run 下
--lock-path=<path> 	共享存储器互斥锁文件的路径
--user=<user> 	worker 进程运行的用户
--group=<group> 	worker 进程运行的组
--with-file-aio. 	为 FreeBSD4.3 +和 linux 2.6.22 +系统启用异步 I/O
--with-debug		这个选项用于启用调试日志,在生产环境的系统中不推荐使用

检查安装了nginx后是否有这个用户

[root@centos nginx-1.22.1]# id nginx
uid=997(nginx) gid=995(nginx) 组=995(nginx)

源码编译安装nginx

[root@centos nginx-1.22.1]# ./configure \
> --user=nginx \
> --group=nginx \
> --prefix=/usr/local/nginx \
> --with-http_stub_status_module \
> --with-http_ssl_module
[root@centos nginx-1.22.1]# make && make install

请添加图片描述
请添加图片描述
给nginx写启动脚本

[root@centos sbin]# pwd
/usr/local/nginx/sbin
[root@centos sbin]# 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=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target

启动报错及原因排查
请添加图片描述
在这个报错信息里面发现80端口被占用,所以我修改了nginx默认的配置文件,将监听端口设置为81
请添加图片描述
location匹配优先级

1.精确匹配 (=2.字符串匹配,不做正则匹配检查(^~3.正则匹配
4.字符串匹配,如果有正则优先正则
5.所有都匹配不到,默认匹配 /

请添加图片描述

加载并启动配置文件

[root@centos sbin]# systemctl daemon-reload	#加载配置文件
[root@centos sbin]# systemctl start nginx		#启动nginx

查看服务器IP:
根据题目一的要求,将配置文件改为监听18080端口,访问页面的路径改为/var/www/html

 server {
        listen  18080;	  #监听18080端口

        server_name  elite.chaitin.com;    #指定服务器的域名

        location / {		#/表示匹配任意请求路径
            root   /var/www/html;	#指定响应目录
            index  index.html index.htm;	#访问该目录下的 index.html 或 index.htm 文件
     		服务器会首先查找 index.html 文件,如果找不到则查找 index.htm 文件。
        }

请添加图片描述

写一个访问页面并重启nginx服务

root@iZ2zei3ltzorcuiiynrseqZ:~#  echo 'Welcome to Chaitin!' > /var/www/html/index.html
root@iZ2zei3ltzorcuiiynrseqZ:~# systemctl daemon-reload
root@iZ2zei3ltzorcuiiynrseqZ:~#  systemctl restart nginx

访问成功!
请添加图片描述
请添加图片描述

要求2 nginx反向代理

要求2. 保留Server1,但是不允许直接访问Server 1,再部署1套NGINX B,利用其实现反向代理功能,要求有且仅有访问http://elite.chaitin.com 可以访问到Web Server1的8080服务。(截图并详细说明NGINX上配置/参数)

步骤一:
另开一台server2 服务器 8.140.240.19,直接安装nginx

root@iZ2zei3ltzorcuiiynrsemZ~# apt-get install nginx

将原配置文件备份,避免错误修改配置后不能找回原有文件

root@iZ2zei3ltzorcuiiynrsemZ:cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

因为我的服务器做了限制,两台服务器之间不能互通,所以我们使用两台服务器的内网地址
请添加图片描述
server2
请添加图片描述
server1
请添加图片描述
server2测试与server1的内网连通信
请添加图片描述
步骤二:
server2的nginx配置文件

 server {
          listen 80; #监听端口
          server_name _; #所有不匹配elite.chaitin.com的请求全都返回404

          location / {
          return 404;
        }
        }
#访问elite.chaitin.com的请求都会转发到http://172.28.253.102:18080 并将结果返回给客户端
        server{
        listen  80;
        server_name elite.chaitin.com;

        location / {
        proxy_pass http://172.28.253.102:18080;
        }
        }

写dns解析:

root@iZ2zei3ltzorcuiiynrsemZ:~# vim /etc/hosts
172.28.253.107  elite.chaitin.com

测试访问:
server2上访问
请添加图片描述
访问server2的IP只能看到server2的nginx默认页面,看不到server1的页面
请添加图片描述

要求3 nginx负载均衡

要求3.假设再加1套Web Server 2,其8080端口提供与Server 1相同服务,如何配置NGINX A实现访问http://elite.chaitin.com 的请求可以被负载分发到Server1或者Server2?
这里我用自己的本地虚拟机做实验

server1192.168.15.133
server2192.168.15.138
负载均衡调度器192.168.15.140

所有服务器都关闭防火墙和selinux
步骤一:server1和server2基础配置
每台服务器上都安装nginx服务
请添加图片描述
server1和server2都做:
server1和server2的配置相同

 server {
        listen       8080;
        server_name  elite.chaitin.com;
        root         /chaitin/www; #自己定义的访问页面

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

在这里插入图片描述
加载启动配置文件,创建web页面,拷贝给server2
请添加图片描述
域名解析
请添加图片描述
测试访问页面
请添加图片描述
步骤二:负载均衡调度器配置:

    upstream server_pools {  #接收来自server中的请求
        server 192.168.15.138:8080 weight=1; #两个服务器的权重都一样,会把所有请求相对均匀的分配到两台服务器上
        server 192.168.15.133:8080 weight=1;

 }

    server{
        listen 8080;
        server_name _;	#所有不是请求elite.chaitin.com域名的8080服务都会被禁止并返回403的状态码
        location / {
                return 403;
         }
 }

    server{
        listen 8080;
        server_name elite.chaitin.com;
        location / {
        proxy_pass http://server_pools; #访问8080端口且以elite.chaitin.com为域名的请求,会把请求转发到server_pools的负载均衡池
                }
        }
}

请添加图片描述

域名解析
在这里插入图片描述
启动nginx并访问测试

请添加图片描述
请求能够被均匀的分配到两台服务器上

要求4 nginx高可用

要求4. 在上文题目2基础之上,增加节点NGINX B,如何配置实现高可用?demo演示当NGINX A故障时,流量自动切换到NGINX B(客户端访问几乎无感知)。详细说明VRRP协议在本题所述场景下的应用。
server1和server2安装keepalived

[root@server1 ~]# yum install keepalived

server1和server2写脚本文件

[root@server1 yum.repos.d]# vi /usr/local/src/nginx_check.sh

#!/bin/bash
# 检查是否开启nginx
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
        systemctl stop keepalived
fi


在这里插入图片描述
server1

[root@server1 ~]# vim /etc/keepalived/keepalived.conf

     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.15.143  #当前keepalived所在的主机ip
   smtp_connect_timeout 30
   router_id 192.168.15.143  #当前keepalived所在的主机ip
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script chk_http_port{
   script "/usr/local/src/nginx_check.sh"
   interval 2 #每隔2s检测一次脚本
   weight -20 #权重减20
}

vrrp_instance VI_1 {
    state MASTER #将当前主机设置为master节点
    interface eth0 #主机使用的网卡
virtual_router_id 51
    priority 100 #优先级,主节点的优先级更大
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.15.66 #虚拟ip,必须和master、backup处于同一网段
    }
}

            

server2

[root@server2 ~]# vim /etc/keepalived/keepalived.conf 

   vrrp_gna_interval 0
}
vrrp_script chk_http_port{
   script "/usr/local/src/nginx_check.sh"
   interval 2 #每隔2s检测一次脚本
   weight -20 #权重减20
}

vrrp_instance VI_1 {
    state BACKUP#将当前主机设置为master节点
    interface eth0 #主机使用的网卡
    virtual_router_id 51
    priority 90 #优先级,主节点的优先级更大
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.15.66 #虚拟ip,必须和master、backup处于同一网段
    }
}

都启动keepalived服务

[root@server2 ~]# vim /etc/keepalived/keepalived.conf

测试:
在这里插入图片描述
将server1的服务关闭

systemctl stop nginx

在这里插入图片描述

要求5 负载均衡算法

要求5. (加强提升题目)在上文题目3基础之上,配置和验证NGINX支持哪些负载均衡算法及其效果?并结合NGINX配置参数详细说明不同负载均衡算法工作原理。

轮询算法
轮询(Round Robin):这是默认的负载均衡算法。Nginx将每个新的客户端请求按照服务器列表的顺序分发,依次轮流选择下一个服务器。这是最简单的负载均衡算法,适用于后端服务器性能相近的情况。

加权轮询(Weighted Round Robin):在这种算法中,每个后端服务器都分配了一个权重值,高权重的服务器会收到更多的请求。这对于在后端服务器之间分配不同的负载容量非常有用,以确保性能更好的服务器获得更多的请求。

 upstream server_pools {
        server 192.168.15.138:8080 weight=1; #两台服务器响应请求的方式为1:2
        server 192.168.15.133:8080 weight=2;

 }

    server{
        listen 8080;
        server_name _;
        location / {
                return 403;
         }
 }

    server{
        listen 8080;
        server_name elite.chaitin.com;
        location / {
        proxy_pass http://server_pools;
                }
        }
}

在这里插入图片描述
重启服务并测试

[root@lvs ~]# vim /etc/nginx/nginx.conf
[root@lvs ~]# systemctl daemon-reload
[root@lvs ~]# systemctl restart nginx

在这里插入图片描述
源地址哈希法
IP哈希(IP Hash):Nginx使用客户端的IP地址来计算哈希值,并将请求分发到具有相同哈希值的后端服务器。这个算法确保相同IP的客户端始终访问相同的后端服务器,适用于需要会话保持的情况,如Web应用程序的会话管理。

在负载均衡服务器上配置


    upstream server_pools {
        hash $remote_addr consistent; #使用客户端的IP地址进行哈希计算,
        							   #并且使用consistent关键字确保负载均衡在后端服务器发生变化时尽量减少数据迁移。
        server 192.168.15.138:8080;
        server 192.168.15.133:8080;

 }

    server{
        listen 8080;
        server_name _;
        location / {
                return 403;
         }
 }

    server{
        listen 8080;
        server_name elite.chaitin.com;
        location / {
        proxy_pass http://server_pools;
                }
        }
}

在这里插入图片描述
重启nginx服务

[root@lvs ~]# systemctl daemon-reload
[root@lvs ~]# systemctl restart nginx

另开一台客户端主机
写域名解析文件

[root@localhost ~]# vi /etc/hosts
192.168.15.140  elite.chaitin.com	#访问的是负载均衡服务器

测试
可以发现客户端请求的一直都是同一个服务器
在这里插入图片描述
最小连接数算法
最少连接(Least Connections):Nginx跟踪每个后端服务器的活动连接数,然后将请求发送到具有最少活动连接数的服务器。这有助于分配负载并确保请求发送到连接较少的服务器,从而实现负载均衡。

  upstream server_pools {
        least_conn; #使用最小连接数算法
        server 192.168.15.138:8080;
        server 192.168.15.133:8080;

 }

    server{
        listen 8080;
        server_name _;
        location / {
                return 403;
         }
 }

    server{
        listen 8080;
        server_name elite.chaitin.com;
        location / {
        proxy_pass http://server_pools;
                }
        }
}

在这里插入图片描述
重启nginx服务
因为测试需要用到多台客户端,但我的服务器没有那么多,所以就不测试啦!

要求6 健康检查

要求6. (加强提升题目)在上文题目3基础之上,配置和验证主动和被动两种健康检查方式及其效果?并结合NGINX配置参数详细说明不同健康检查方式区别和工作原理。
主动健康检查
原理:
主动健康检查是通过Keepalived自身执行的周期性检查来确定服务器的状态。Keepalived会定期发送请求(通常是ICMP ping或TCP连接请求)到服务器,并根据服务器的响应来确定其是否处于健康状态。

配置:
主动健康检查需要在Keepalived配置文件中定义一个或多个健康检查脚本,这些脚本将定期运行以检查服务器的健康状态。在配置文件中使用track_script部分来定义这些检查脚本

track_script {
    chk_script {
        script "/etc/keepalived/check_script.sh" # 健康检查脚本的路径
        interval 2 # 检查间隔时间,单位秒
        weight 2 # 权重
    }
}

脚本文件

[root@server1 ~]# vim /etc/check_script.sh

#!/bin/bash

# 定义要检查的目标URL
TARGET_URL="http://localhost:80"

# 发送HTTP请求并获取响应
HTTP_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" $TARGET_URL)

# 检查HTTP响应状态码是否为200(正常)
if [ "$HTTP_RESPONSE" = "200" ]; then
    # 返回0表示健康
    exit 0
else
    # 返回1表示不健康
    exit 1
fi

被动健康检查:
原理:
被动健康检查是通过监听服务器上的服务来确定服务器的状态。Keepalived将侦听服务器上的服务端口,如果无法连接到该端口,将认为服务器处于不健康状态。

配置:
被动健康检查不需要特别的配置,只需确保Keepalived配置文件中的虚拟IP与服务器上的服务端口一致即可。

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

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

相关文章

8.(Python数模)马尔科夫链预测

Python实现马尔科夫链预测 马尔科夫链原理 马尔科夫链是一种进行预测的方法&#xff0c;常用于系统未来时刻情况只和现在有关&#xff0c;而与过去无关。 用下面这个例子来讲述马尔科夫链。 如何预测下一时刻计算机发生故障的概率&#xff1f; 当前状态只存在0&#xff08;故…

1分钟实现 CLIP + Annoy + Gradio 文搜图+图搜图 系统

多模态图文搜索系统 CLIP 进行 Text 和 Image 的语义EmbeddingAnnoy 向量数据库实现树状结构索引来加速最近邻搜索Gradio 轻量级的机器学习 Web 前端搭建 文搜图 图搜图 CLIP图像语义提取功能&#xff01;

生信分析Python实战练习 3 | 视频21

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

已解决下载安装Python官网安装包下载速度慢问题

本文摘要&#xff1a;本文已解决下载安装Python官网安装包下载速度慢的问题。 &#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究…

47、springboot 的 国际化消息支持--就是根据浏览器选择的语言,项目上的一些提示信息根据语言的选择进行对应的显示

springboot的国际化也是基于spring mvc 的。 springboot 的 国际化消息支持–就是根据浏览器选择的语言&#xff0c;项目上的一些提示信息根据语言的选择进行对应的显示。 总结下国家化自动配置&#xff1a; 功能实现就是&#xff1a; 比如一个登录页面&#xff0c;我们在浏览…

ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

ORB-SLAM3配置安装及ROS和脚本运行---Ubuntu20.04 1. 安装所需要的依赖和包2. 修改代码及文件内容2.1 CMakeLists.txt文件的修改2.2 单目可视化代码修改2.3 环境配置文件的修改2.4 源码的修改 3.ORB-SLAM3的编译3.1 构建 ORB-SLAM3 库3.2 生成ROS节点 4.ORB-SLAM3的运行4.1 非R…

ModaHub魔搭社区专访百度智能云李莅:您认为向量数据库是一个刚需产品吗?

ModaHub魔搭社区&#xff1a;可以看到&#xff0c;大模型火了以后&#xff0c;向量数据库受到了特别高的关注&#xff0c;您是如何看待这种现象呢&#xff1f;您认为向量数据库是一个刚需产品吗&#xff1f; 李莅&#xff1a;是的。大模型是在今年才崭露头角&#xff0c;或者说…

【Python Odyssey】1-1 | Python初见面

文章目录 Python 由来Python 的历史Python 的优点Python的缺点Python 运用领域Python 环境配置Python 解释器安装确认Python的版本编写Python源代码运行程序 Python 由来 Python 是 吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;在阿姆斯特丹为了打发无聊的圣诞节&…

三维点云转换为二维图像

文章目录 前言原理代码总结与反思实验结果展示 前言 目的&#xff1a;将三维点云转换为二维图像 作用&#xff1a; a.给点云赋予彩色信息&#xff0c;增强点云所表达物体或对象的辨识度&#xff1b; b.将三维点云中绘制的目标物体通过映射关系绘制到二维图像中&#xff0c;这个…

Lesson5-1:OpenCV视频操作---视频读写

学习目标 掌握读取视频文件&#xff0c;显示视频&#xff0c;保存视频文件的方法 1 从文件中读取视频并播放 在OpenCV中我们要获取一个视频&#xff0c;需要创建一个VideoCapture对象&#xff0c;指定你要读取的视频文件&#xff1a; 创建读取视频的对象 cap cv.VideoCapt…

Nginx安装与部署

文章目录 一,说明二,下载三,Windows下安装1,安装2,启动3,验证 四,Linux下安装1,安装2,启动3,验证 五,Nginx配置 一,说明 Nginx是一款高性能Web和反向代理服务器,提供内存少,高并发,负载均衡和反向代理服务,支持windos和linux系统 二,下载 打开浏览器,输入地址: https://ngin…

【小沐学NLP】Python使用NLTK库的入门教程

文章目录 1、简介2、安装2.1 安装nltk库2.2 安装nltk语料库 3、测试3.1 分句分词3.2 停用词过滤3.3 词干提取3.4 词形/词干还原3.5 同义词与反义词3.6 语义相关性3.7 词性标注3.8 命名实体识别3.9 Text对象3.10 文本分类3.11 其他分类器3.12 数据清洗 结语 1、简介 NLTK - 自然…

递归算法学习——目标和,组合总和,字母大小写全排列

目录 一&#xff0c;目标和 1.题意 2.例子 3.题目接口 4.解题思路及代码 二&#xff0c;组合总和 1.题意 2.例子 3.题目接口 4.解题思路及代码 三&#xff0c;字母大小写全排列 1.题意 2.例子 3.题目接口 4.解题思路及代码 一&#xff0c;目标和 1.题意 给你一个…

jsp 新能源汽车论坛网Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 新能源汽车论坛网是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0…

Android逆向学习(二)vscode进行双开与图标修改

Android逆向学习&#xff08;二&#xff09;vscode进行双开与图标修改 写在前面 这其实应该还是吾爱的第一个作业&#xff0c;但是写完上一个博客的时候已经比较晚了&#xff0c;如果继续敲机械键盘吵到室友&#xff0c;我怕我看不到明天的太阳&#xff0c;所以我决定分成两篇…

英国一大学宣布:严禁使用AI生成个人陈述

8月29日&#xff0c;伦敦都会大学&#xff08;London Met Uni&#xff09;在发给合作伙伴的邮件中表示&#xff1a;“我们知道人工智能技术已经被用来生成个人陈述&#xff08;personal statements&#xff0c;即文书&#xff09;。请注意&#xff0c;本大学不接受任何由人工智…

网络实验 VlAN 中 Trunk Access端口的说明及实验

网络实验 VlAN 中 Trunk Access端口的说明及实验 VlAN 虚拟局域网技术Access端口 工作原理Trunk端口 工作原理简单实验&#xff08;一&#xff09;划分不同Vlan&#xff0c;实现vlan内部通信拓朴图主机IP 配置划分Vlanping 测试 &#xff08;二&#xff09;跨交换机实现VLAN间通…

mate60 里的2035 到底是什么鬼?

华为在 lengbulangqiang 的情况下发布了 mate60 手机&#xff0c;犹如一颗核弹升到了各国的上空&#xff0c;每个人都很想知道这其中发生了什么事情&#xff0c;也是疑点重重&#xff0c;这其中的一些疑点&#xff0c;足以让某些人暴跳如雷。 这 2035 标识到底是什么&#xff1…

李宏毅机器学习笔记:RNN循环神经网络

RNN 一、RNN1、场景引入2、如何将一个单词表示成一个向量3种典型的RNN网络结构 二、LSTMLSTM和普通NN、RNN区别 三、 LSTM的训练 一、RNN 1、场景引入 例如情景补充的情况&#xff0c;根据词汇预测该词汇所属的类别。这个时候的Taipi则属于目的地。但是&#xff0c;在订票系统…

CSS流光按钮-圆形

主要思路 仅保留一条边框 border-radius 50%drop-shadow动画 animation keyframes 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …