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

Nginx 核心功能

目录

一、基于授权的访问控制

(1)使用htpasswd 生成用户认证文件

(2)修改密码文件权限为400,将所有者改为nginx ,设置 Nginx 的运行用户能够读取

(3)修改主配置文件 nginx.conf,添加相应配置项

(4)检测语法、、重启服务

(5)用浏览器访问网址,检验控制效果

二、基于客户端的访问控制

三、Nginx虚拟主机 

1、基于域名的虚拟主机

(1)设置客户端域名解析

(2)准备各个网站的目录和测试首页

(3)修改配置文件

(4)测试

2、基于 IP 的虚拟主机

(1)为服务器设置多个 IP地址

(2)修改Nginx 的配置文件,使基于IP的虚拟主机生效

(3)访问两个IP网站,测试页面是否生效

3、基于端口的虚拟主机

(1)选择系统中不使用的端口,多个端口映射到同一个 IP 地址

(2)检测端口是否运行正常

(3)分别访问2 个端口地址

四、LNMP 架构部署及应用

1、安装mysql

(1)使用dnf 安装

(2)设置密码并测试

2、安装 PHP 解析环境

(1)编译安装PHP

(2)安装后调整

(3)安装 ZendGuardLoader

3、配置 Nginx 支持PHP 环境

(1)启用 php-fpm进程

(2)配置Gginx 支持PHP 解析

(3)PHP页面访问测试

4、在LNMP 平台中部署Web应用

(1)下载并部署程序代码

(2)创建数据库

3、安装 Web应用


一、基于授权的访问控制

(1)使用htpasswd 生成用户认证文件

使用 htpasswd 生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools 软件包。在/usr/local/nginx/日录下生成了 passwd.db文件,用户名是 zhangsan,密码aptech,输入 2 次。在 passwd.db 中生成用户和密码的密文。

[root@localhost ~]# yum -y install httpd-tools
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db zhangsan
New password: 
Re-type new password: 
Adding password for user zhangsan

(2)修改密码文件权限为400,将所有者改为nginx ,设置 Nginx 的运行用户能够读取

[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db 
[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db 

(3)修改主配置文件 nginx.conf,添加相应配置项

vim /usr/local/nginx/conf/nginx.conf
location / {root   html;index  index.html index.htm;auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;}

(4)检测语法、、重启服务

[root@localhost ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# systemctl restart nginx

(5)用浏览器访问网址,检验控制效果

二、基于客户端的访问控制

基于客户端的访问控制是通过客户端IP地址,决定是否允许对页面访问。规则如下:

  • deny IP/IP 段:拒绝某个|P或 IP 段的客户端访问。

  • allow IP/IP 段:允许某个|P或IP 段的客户端访问。

  • 规则从上往下执行,如匹配则停止,不再往下匹配。

修改主配置文件 nginx.conf,添加相应配置项

[root@localhost ~]# vim /usr/local/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.10.102;allow all;}

三、Nginx虚拟主机 

利用虚拟主机,不用为每个要运行的网站提供一台单独的 Nginx 服务器或单独运行组 Nginx 进程,虚拟主机提供了在同一台服务器,同一组 Nginx 进程上运行多个网站的功能。Nginx 可以配置多种类型的虚拟主机,分别是基于 IP 的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机。

使用 Nginx 搭建虚拟主机服务器时,每个虚拟 web 站点拥有独立的“server{}”配置段,各自监听的 IP 地址、端口号可以单独指定,当然网站名称也是不同的。

1、基于域名的虚拟主机

(1)设置客户端域名解析

修改hosts文件,加入www.benet.com和www.accp.com 这两个域名。

192.168.10.101 www.benet.com
192.168.10.101 www.accp.com

(2)准备各个网站的目录和测试首页

[root@localhost ~]# mkdir -p /var/www/html/benet
[root@localhost ~]# mkdir -p /var/www/html/accp
[root@localhost ~]# vim  /var/www/html/benet/index.html
benet
[root@localhost ~]# vim  /var/www/html/accp/index.html
accp

(3)修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.confserver {listen       80;server_name www.benet.com;access_log logs/www.benet.com.access.log;server_name  localhost;charset utf-8;#access_log  logs/host.access.log  main;location / {root   /var/www/html/benet;index  index.html index.htm;}}server {listen       80;#    listen       somename:8080;server_name  www.accp.com;access_log  logs/www.accp.com.access.log;location / {root   /var/www/html/accp;index  index.html index.htm;}}
[root@localhost ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# systemctl restart nginx

(4)测试

2、基于 IP 的虚拟主机

台主机如果有多个 IP地址,可以设置每一个 IP 对应一个站点。主机安装多个网卡可以有多个 IP,这里采用虚拟 IP 的方式使主机有多个 IP。

(1)为服务器设置多个 IP地址

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens160
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-ens160:0
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-ens160:1
[root@localhost network-scripts]# vim ifcfg-ens160:0
NAME=ens160:0
DEVICE=ens160:0
IPADDR=192.168.10.100
[root@localhost network-scripts]# vim ifcfg-ens160:1
NAME=ens160:1
DEVICE=ens160:1
IPADDR=192.168.10.200
[root@localhost network-scripts]# nmcli c reload
[root@localhost network-scripts]# nmcli c up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost network-scripts]# ifconfig
ens160:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.10.100  netmask 255.255.255.0  broadcast 192.168.10.255ether 00:0c:29:18:3b:14  txqueuelen 1000  (Ethernet)ens160:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.10.200  netmask 255.255.255.0  broadcast 192.168.10.255ether 00:0c:29:18:3b:14  txqueuelen 1000  (Ethernet)

(2)修改Nginx 的配置文件,使基于IP的虚拟主机生效

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.confserver {listen       192.168.10.100:80;server_name www.benet.com;……}server {listen       192.168.10.200:80;server_name  www.accp.com;        ……}
[root@localhost ~]# systemctl restart nginx

(3)访问两个IP网站,测试页面是否生效

3、基于端口的虚拟主机

(1)选择系统中不使用的端口,多个端口映射到同一个 IP 地址

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.confserver {listen       192.168.10.101:8080;server_name www.benet.com;……}server {listen       192.168.10.101:8888;server_name  www.accp.com;        ……}
[root@localhost ~]# systemctl restart nginx

(2)检测端口是否运行正常

[root@localhost ~]# netstat -anpt | grep nginx
tcp        0      0 192.168.10.101:8888     0.0.0.0:*               LISTEN      1848/nginx: master  
tcp        0      0 192.168.10.101:8080     0.0.0.0:*               LISTEN      1848/nginx: master

(3)分别访问2 个端口地址

四、LNMP 架构部署及应用

1、安装mysql

(1)使用dnf 安装

[root@localhost ~]# dnf -y install mariadb-server
[root@localhost ~]# systemctl start mariadb

(2)设置密码并测试

[root@localhost ~]# mysqladmin -uroot password 'pwd123'
[root@localhost ~]# mysql -uroot -ppwd123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.5.28-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> exit
Bye

2、安装 PHP 解析环境

(1)编译安装PHP

[root@localhost ~]# dnf -y install gd libxml2-devel libjpeg-devel libpng-devel
  • libxm12-devel:libxml 是一个用来解析 XML 文档的函数库
  • libjpeg-devel #是一个完全用C语言编写的库,包含了被广泛使用的 JPEG 解码、JPEG 编码和其他的 JPEG 功能的实现#
  • libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形libpng-devel文件的创建、读写等操作
  • GD 指的是 Graphic Device,PHP 的 GD 库是用来处理图形的扩展库,通过 GD 库提供的一系列 API,可以对图像进行处理或者直接生成新的图片。PHP 除了能进行文本处理以外,通过 GD 库,可以对 JPG、PNG、GIF、SWF 等图片进行处理
  • zlib-devel   #zlib 是一个压缩和解压模块
[root@localhost ~]# tar zxvf php-5.5.38.tar.g
[root@localhost ~]# ls
anaconda-ks.cfg  nginx-1.28.0  nginx-1.28.0.tar.gz  php-5.5.38  php-5.5.38.tar.gz

mysql用dnf装的:

[root@localhost ~]# cd php-5.5.38
[root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib

注:

  • --with-mysqli=mysqlnd 需要用 ip 地址的方式连接数据库,既可以是 php 和 mysql 装在同一个服务器,也可以装在不同的服务器。用127.0.0.1本地连接不需要为连接授权,用192.168.10.101 连接需要授权,哪怕连接本地数据库。
  • --with-mysqli=/usr/bin/mysql_config 需要用 localhost 连接数据库,只能用于本地连接,也就是 php 和 mysql 装在同一个服务器上
[root@localhost php-5.5.38]# make && make install

(2)安装后调整

[root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/
[root@localhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/

(3)安装 ZendGuardLoader

[root@localhost ~]# tar zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz 
zend-loader-php5.5-linux-x86_64/
zend-loader-php5.5-linux-x86_64/ZendGuardLoader.so
zend-loader-php5.5-linux-x86_64/opcache.so
zend-loader-php5.5-linux-x86_64/README.txt
[root@localhost ~]# cd zend-loader-php5.5-linux-x86_64
[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
[root@localhost zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini
[PHP]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so #添加到第二行
zend_loader.enable=1

3、配置 Nginx 支持PHP 环境

(1)启用 php-fpm进程

[root@localhost ~]# cd /usr/local/php5/etc/
[root@localhost etc]# 
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# useradd -M -s /sbin/nologin php
[root@localhost etc]# vim php-fpm.conf
pid=run/php-fpm.pid	   #25
user=php	#149
group=php
pm.max_children=50	#230,最多子进程数
pm.start_servers=20		#235,启动时开启的进程数
pm.min_spare_servers=5		#240,最少空闲进程数
pm.max_spare_servers=35	      #245,最多空闲进程数
[root@localhost etc]# /usr/local/sbin/php-fpm
[root@localhost etc]# netstat -anpt | grep php-fpm
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      113731/php-fpm: mas 
[root@localhost ~]# vim /lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/usr/local/php5/php-fpm.pip
ExecStart=/usr/local/php5/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php5/etc/php-fpm.
con
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

(2)配置Gginx 支持PHP 解析

调用本机的 php-fpm进程

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.confserver {listen       80;server_name  www..benet.com;charset utf-8;#access_log  logs/host.access.log  main;location / {root   /var/www/html;index  index.html index.htm index.php;}location ~ \.php$ {root           /var/www/html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;include        fastcgi.conf;}}

(3)PHP页面访问测试

[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# systemctl restart php-fpm
[root@localhost ~]# mkdir -p /var/www/html/
[root@localhost ~]# vim /var/www/html/test1.php
<?php
phpinfo();
?>

[root@localhost ~]# vim /var/www/html/test2.php
<?php
$link=mysqli_connect('127.0.0.1','root','pwd123');
if($link) echo "<h1>恭喜你,数据库连接成功啦!!!</h1>";
mysqli_close($link);
?>

4、在LNMP 平台中部署Web应用

(1)下载并部署程序代码

[root@localhost ~]# dnf -y install unzip
[root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip
[root@localhost ~]# mkdir -p /var/www/html/bbs
[root@localhost ~]# mv upload/* /var/www/html/bbs
[root@localhost ~]# chown -R php:php /var/www/html/bbs/

(2)创建数据库

[root@localhost ~]# mysql -uroot -ppwd123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.28-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> create database bbs;
Query OK, 1 row affected (0.001 sec)MariaDB [(none)]> grant all on bbs.* to runbbs@127.0.0.1 identified by 'pwd123';
Query OK, 0 rows affected (0.002 sec)MariaDB [(none)]> grant all on bbs.* to runbbs@'localhost' identified by 'pwd123';
Query OK, 0 rows affected (0.001 sec)

3、安装 Web应用

访问服务器 URL 地址,对网站进行初始化

http://192.168.10.101/bbs/install/index.php

相关文章:

Nginx 核心功能

目录 一、基于授权的访问控制 &#xff08;1&#xff09;使用htpasswd 生成用户认证文件 &#xff08;2&#xff09;修改密码文件权限为400&#xff0c;将所有者改为nginx &#xff0c;设置 Nginx 的运行用户能够读取 &#xff08;3&#xff09;修改主配置文件 nginx.conf&…...

排序版研究方向

姓 名研究方向电子邮箱办公电话办公地点曹培根代数cao2024ustc.edu.cn 新楼412陈洪佳代数hjchenustc.edu.cn0551-636076931529陈小伍代数xwchenmail.ustc.edu.cn0551-636062351321梁永祺代数yqliangustc.edu.cn0551-636006171613欧阳毅代数yiouyangustc.edu.cn0551-63600337…...

AI国学智慧语录视频,条条视频10W+播放量

家人们&#xff01;图书类带货玩法真的非常多&#xff0c;之前也分享过蛮多&#xff0c;例如情感语录、育儿教育、爆款图书金句类、AI历史人物解说类等等。 本期继续来分享一个对于普通人来说&#xff0c;上手相当简单&#xff0c;容易起号&#xff0c;可作为长线深耕的AI带货…...

RN 获取视频封面,获取视频第一帧

严格的说&#xff0c;没有解决这个问题&#xff0c;实际上是绕过了这个问题&#xff0c;严格的说获取的也不是第一帧。 RN的video 视频应用&#xff0c;大多是这样的 1、安装 yarn add react-native-video 2、导入 import Video from react-native-video; 3、使用 …...

缓存分片哈希 vs 一致性哈希:优缺点、区别对比及适用场景(图示版)

&#x1f4dc; 引言 在分布式缓存系统中&#xff0c;数据分布策略是设计的关键之一。缓存分片哈希和一致性哈希是两种常见的数据分布算法&#xff0c;它们各有优缺点和适用场景。本文将通过图示对比表格&#xff0c;深入解析这两种算法的核心原理、优缺点及适用场景。 &#x…...

iOS - 音频: Core Audio - 播放

环境 iOS 18 Xcode 16.3 swift-driver version: 1.120.5 Apple Swift version 6.1 (swiftlang-6.1.0.110.21 clang-1700.0.13.3) Target: x86_64-apple-macosx15.0 Core Audio 的架构 声音数据的描述 sample: 一个声道采样的值,采样率定义了每秒从连续信号中提取并组成离散信号…...

Nerfstudio 环境配置与自有数据集(图片和视频)测试全方位全流程实战【2025最新版!!】

一、引言 神经辐射场(Neural Radiance Fields&#xff0c;简称NeRF)是近年来计算机视觉和图形学领域的一项革命性技术&#xff0c;它能够从2D图像中学习复杂的3D场景表示。然而&#xff0c;NeRF技术的实现和应用门槛较高&#xff0c;需要较为专业的计算机视觉和深度学习知识。…...

【Java学习】动态代理有哪些形式?

Java动态代理的两种主要形式 动态代理在Java中有两种主要的实现方式&#xff0c;它们各有特点和使用场景&#xff1a; 1. JDK动态代理 (基于接口) 特点&#xff1a; Java标准库自带的功能&#xff08;java.lang.reflect.Proxy&#xff09;只能代理接口&#xff0c;不能代理…...

Android Studio 中实现方法和参数显示一行

Android Studio 中实现方法和参数显示一行&#xff0c;可通过以下步骤配置&#xff1a; 一、基础格式化设置 ‌快捷键格式化‌ 选中代码后使用 Ctrl Alt L&#xff08;Windows/Linux&#xff09;或 Cmd Option L&#xff08;Mac&#xff09;进行快速格式化27。 ‌菜单操作…...

SQLyog中DELIMITER执行存储过程时出现的前置缩进问题

在SQLyog中执行存储过程时出现的前置缩进问题&#xff0c;实际上反映了SQLyog对SQL语句解析的一个特殊行为。以下是详细解释和解决方案&#xff1a; 问题根源 SQLyog的语句分隔逻辑&#xff1a; SQLyog默认会根据分号(;)和换行自动分隔SQL语句 当代码有缩进时&#xff0c;SQLy…...

基于Spring Boot 3.0、ShardingSphere、PostgreSQL或达梦数据库的分库分表

要实现基于Spring Boot 3.0、ShardingSphere、PostgreSQL或达梦数据库的分库分表&#xff0c;首先需要对ShardingSphere进行一些基本配置。你提到的溯源码、批次号等数据需要考虑到跨年数据的存储&#xff0c;因此要设计一个能够动态扩展的分表策略 添加ShardingSphere依赖 在…...

vscode chrome调试怎么在所有浏览器都好使

chrome调试时只能在打开的浏览器里进行调试&#xff0c;其它打开的chrome浏览器就不能调试了&#xff0c;怎么解决。 右键点击 Chrome 的快捷方式图标&#xff0c;选择属性 在目标一栏&#xff0c;最后加上--remote-debugging-port9222 注意要用空格隔开 lanch.json 文件配置 …...

20250429在Ubuntu 20.04.6下安装VMware Workstation16

20250429在Ubuntu 20.04.6下安装VMware Workstation16 2025/4/29 20:16 缘起&#xff1a;1、在ubuntu14.04下git clone异常该如何处理呢&#xff1f; 2、请问 现在 编译NanoPi NEO的FriendlyCore系统使用ubuntu哪一个版本比较好&#xff1f; ubuntu14.04 编译异常/下载不了&am…...

Java高频面试之并发编程-10

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;ThreadLocalMap 怎么解决 Hash 冲突的&#xff1f; ThreadLocalMap 是 ThreadLocal 的核心实现&#xff0c;它采用 开放…...

【Tauri2】035——sql和sqlx

前言 这篇就来看看插件sql SQL | Taurihttps://tauri.app/plugin/sql/ 正文 准备 添加依赖 tauri-plugin-sql {version "2.2.0",features ["sqlite"]} features可以是mysql、sqlite、postsql 进去features看看 sqlite ["sqlx/sqlite&quo…...

C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 16)

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 […...

VScode与远端服务器SSH链接

这里写自定义目录标题 简介步骤 简介 这里是使用密钥文件链接 步骤 首先在windows CMD中运行 ssh-keygen -t rsa&#xff0c;生成本机的公钥和私钥 这里id rsa.pub就是公钥&#xff0c;在服务器端使用&#xff0c;id rsa是私钥在用户端使用;通常目录在C:/Users/Your name/…...

数据结构入门:详解顺序表的实现与操作

目录 1.线性表 2.顺序表 2.1概念与结构 2.2分类 2.2.1静态顺序表 2.2.2动态顺序表 3.动态顺序表的实现 3.1.SeqList.h 3.2.SeqList.c 3.2.1初始化 3.2.2销毁 3.2.3打印 3.2.4顺序表扩容 3.2.5尾部插入及尾部删除 3.2.6头部插入及头部删除 3.2.7特定位置插入…...

Reactor框架介绍

Reactor(反应器模式)是一种事件驱动的设计模式,广泛用于高性能网络编程和异步I/O处理。它的核心思想是将事件分发与业务逻辑解耦,通过统一的机制处理多路I/O事件。 这个在android蓝牙中大量使用,如果这里不懂,那么很难看懂底层的逻辑,所以我们在这片文章中做一个介绍 …...

Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态

Nacos 3.0 正式版本发布啦&#xff01;升级 MCP Registry&#xff0c;围绕着 MCP 服务管理&#xff0c;MCP 多种类型注册&#xff0c;包含 MCP Server 注册、编排、动态调试和管理&#xff0c;并且提供 Nacos-MCP-Router 可以进行 MCP 动态发现&#xff0c;可以自动安装、代理 …...

前端安全中的XSS(跨站脚本攻击)

XSS 类型 存储型 XSS 特征&#xff1a;恶意脚本存储在服务器&#xff08;如数据库&#xff09;&#xff0c;用户访问受感染页面时触发。场景&#xff1a;用户评论、论坛帖子等持久化内容。影响范围&#xff1a;所有访问该页面的用户。 反射型 XSS 特征&#xff1a;恶意脚本通过…...

go单向链表

需求 实现单向链表的节点顺序添加、顺序遍历。 实现 package mainimport ("fmt" )type zodiac_sign struct {number intdizhi stringanimal stringyear intnext *zodiac_sign }// 添加 // func add_node_by_order(previous_node zodiac_sign, current_node z…...

Python小程序:上班该做点摸鱼的事情

系统提醒 上班会忘记一些自己的事&#xff0c;所以你需要在上班的的时候突然给你弹窗&#xff0c;你就知道要做啥了 源码 # -*- coding:utf-8 -*- """ 作者:杨桃清 日期: 2025年04日29 21:51:24 """ import datetime import time import thre…...

uni-app中使用RenderJs 使用原生js

RenderJs运行的层叫【视图层】&#xff0c;Uniapp原生Script叫【逻辑层】&#xff0c;逻辑层要调用视图层需要使用一个叫【watcher】&#xff0c;具体怎么调用呢 为了实现这两层之间的通信&#xff0c;uniapp提供了一些特定的机制。以下是对这些通信机制的详细解释&#xff0c…...

51c自动驾驶~合集37

我自己的原文哦~ https://blog.51cto.com/whaosoft/13878933 #DETR->DETR3D->Sparse4D 走向长时序稀疏3D目标检测 一、DETR 图1 DETR架构 DETR是第一篇将Transformer应用到目标检测方向的算法。DETR是一个经典的Encoder-Decoder结构的算法&#xff0c;它的骨干网…...

uniapp 小程序 安卓苹果 短视频解决方案

需求 要做类似抖音小程序的功能 思路 uniapp 使用swiper滑块 实现滑动 使用video播放视频 遇到的问题 1 video组件在小程序可以使用 uni.createVideoContext api控制 2 但是在app端会有层级问题&#xff08;因为使用的原生组件具体看官方文档&#xff09;导致无法正常滑动…...

LeetCode58_最后一个单词的长度

LeetCode58_最后一个单词的长度 标签&#xff1a;#字符串Ⅰ. 题目Ⅱ. 示例 0. 个人方法 标签&#xff1a;#字符串 Ⅰ. 题目 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、…...

深入理解Spring AI框架的核心概念

深入理解Spring AI框架的核心概念 前言 在当今人工智能飞速发展的时代&#xff0c;将AI技术集成到应用程序中已成为众多开发者关注的焦点。Spring AI框架为Java开发者提供了便捷的途径来实现这一目标。理解其核心概念对于充分发挥框架的潜力至关重要。本文将详细探讨Spring A…...

技术驱动与模式创新:开源AI大模型与S2B2C商城重构零售生态

摘要&#xff1a;在移动互联网与人工智能技术深度融合的背景下&#xff0c;零售行业正经历从“人找货”到“货找人”的范式转移。本文以开源AI大模型、AI智能名片、S2B2C商城小程序源码为核心技术要素&#xff0c;结合无人便利店、盒马鲜生、王府井二次元业态等商业实践&#x…...

精益数据分析(30/126):电商商业模式的深度剖析与关键指标解读

精益数据分析&#xff08;30/126&#xff09;&#xff1a;电商商业模式的深度剖析与关键指标解读 在创业与数据分析的漫漫征途中&#xff0c;我们都在不断探寻如何更好地理解和运用商业数据&#xff0c;以实现业务的蓬勃发展。今天&#xff0c;我依旧带着和大家共同进步的初心…...

玩玩OCR

一、Tesseract: 1.下载windows版&#xff1a; tesseract 2. 安装并记下路径&#xff0c;等会要填 3.保存.py文件 import pytesseract from PIL import Image def ocr_local_image(image_path):try:pytesseract.pytesseract.tesseract_cmd rD:\Programs\Tesseract-OCR\tesse…...

gradle 下载的tencent的镜像

distributionUrlhttps://mirrors.cloud.tencent.com/gradle/gradle-5.4.1-all.zip distributionUrlhttps://mirrors.aliyun.com/gradle/distributions/v5.4.1/gradle-5.4.1-all.zip 参考&#xff1a; gradle 镜像地址,解决 AS 下载缓慢或者下不下来的问题-CSDN博客...

【含文档+PPT+源码】基于微信小程序的乡村振兴民宿管理系统

项目介绍 本课程演示的是一款基于微信小程序的乡村振兴民宿管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该…...

【Redis——数据类型和内部编码和Redis使用单线程模型的分析】

文章目录 Redis的数据类型和内部编码单线程模型的工作过程Redis虽然是一个单线程模型&#xff0c;为啥效率那么高&#xff0c;速度快呢&#xff1f; 总而言之&#xff0c;Redis提供的哈希表容器并不一定真的是真的哈希表&#xff0c;而是在特点的场景下&#xff0c;用别的容器去…...

leetcode day37 474

474 一和零 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的 子集 。 示例 1&#xff1a; 输入&#xff1a;s…...

【计算机视觉】目标检测:深度解析YOLOv9:下一代实时目标检测架构的创新与实战

深度解析YOLOv9&#xff1a;下一代实时目标检测架构的创新与实战 架构演进与技术创新YOLOv9的设计哲学核心创新解析1. 可编程梯度信息&#xff08;PGI&#xff09;2. 广义高效层聚合网络&#xff08;GELAN&#xff09;3. 轻量级设计 环境配置与快速开始硬件需求建议详细安装步骤…...

Android Studio Profiler

1.我们想要查看自己方法的调用链&#xff0c;或者分析方法耗时的情况&#xff0c;可以选择Android Studio的Profiler&#xff0c;比较方便快捷。如下&#xff1a; 2.基本的面板参数讲解&#xff1a; 3.可以通过搜索&#xff0c;查看对应的方法&#xff0c;以及方法的调用链…...

Android Studio for Platform(ASFP)真机调试

连接设备 由于ubuntu连接adb设备每次都需要配置usb权限&#xff0c;很麻烦。并且每次换设备还要重新配置&#xff0c;我多数设备都是用wifi的adb方式连接。 开发板显示 连接显示器配合usb鼠标或者遥控器操作&#xff08;因为开发板默认开启了adb&#xff0c;我这里是使用有线…...

如何个人HA服务器地址和长期密钥

下面分两步说明如何获取你的 Home Assistant 服务器地址以及创建“长期访问令牌”&#xff08;Long-Lived Access Token&#xff09;&#xff0c;并给出一个简单的 Python 调用示例。 一、获取 Home Assistant 服务器地址 默认域名/端口 如果你在本机或局域网内安装并使用默认设…...

生物化学笔记:神经生物学概论04 视觉通路简介视网膜视网膜神经细胞大小神经节细胞(视错觉)

视觉通路简介 神经节细胞的胞体构成一明确的解剖层次&#xff0c;其外邻神经纤维层&#xff0c;内接内丛状层&#xff0c;该层在鼻侧厚约10&#xff5e;20μm&#xff0c;最厚在黄斑区约60&#xff5e;80μm。 全部细胞数约为120万个(1000000左右)。 每个细胞有一轴突&#xff…...

C++——调用OpenCV和NVIDIA Video Codec SDK库实现使用GPU硬解码MP4视频文件

系列文章目录 参考博客 参考博客 参考博客 文章目录 系列文章目录前言一、下载安装NVIDIA Video Codec SDK1、下载NVIDIA Video Codec SDK2、安装NVIDIA Video Codec SDK 二、下载编译安装OpenCV1、下载OpenCV2、编译安装OpenCV3、配置环境变量4、报错解决报错一&#xff1a; …...

dify升级最新版本(保留已创建内容)

dify安装参考文章&#xff1a; DeepSeek&#xff0b;Dify本地部署私有化知识库 如果之前安装的时候&#xff0c;是通过docker镜像的方式。 从网上下载最新的dify包&#xff0c;下载地址&#xff1a; https://github.com/langgenius/dify 下载完成后&#xff0c;把文件覆盖原…...

4、RabbitMQ的七种工作模式介绍

目录 一、Simple(简单模式) 1.1 概念 1.2 代码实现 消费者 运行结果 二、Work Queue&#xff08;工作队列&#xff09; 2.1 概念 1.2 代码实现 生产者 消费者 运行结果 三、Publish/Subscribe&#xff08;发布/订阅模式&#xff09; 3.1 概念 3.2 代码实现 生产者…...

React Three Fiber 详解:现代 Web3D 的利器

React Three Fiber 详解:现代 Web3D 的利器 随着 Web 技术的发展,3D 场景与交互已经不再是游戏开发者的专利。越来越多的网站、产品页、交互动画,开始大量引入 3D 元素。要在 React 项目中高效使用 WebGL,React Three Fiber(简称 R3F)成为了目前最主流的选择。 今天这篇…...

同步与互斥(同步)

线程同步 条件变量 当⼀个线程互斥地访问某个变量时&#xff0c;它可能发现在其它线程改变状态之前&#xff0c;它什么也做不了。 例如⼀个线程访问队列时&#xff0c;发现队列为空&#xff0c;它只能等待&#xff0c;只到其它线程将⼀个节点添加到队列中。这种情况就需要⽤到条…...

C语言教程(二十一):C 语言预处理器详解

一、预处理器概述 C语言预处理器是一个文本替换工具&#xff0c;它会对源代码进行扫描&#xff0c;处理以 # 开头的预处理指令。这些指令可以控制预处理器的行为&#xff0c;实现宏定义、文件包含、条件编译等功能。预处理器的主要作用是为后续的编译过程准备代码。 二、常见的…...

grafana/loki 设置日志保留时间

loki:limits_config:retention_period: 189h参考官网 Configuring the retention period...

Spring Boot × K8s 监控实战-集成 Prometheus 与 Grafana

在微服务架构中&#xff0c;应用的可观测性至关重要。Kubernetes 已成为容器化部署的标准&#xff0c;但其自身的监控能力有限&#xff0c;需要与其他工具集成才能实现详细的运行数据采集与分析。 本文将通过 Spring Boot Kubernetes Prometheus Grafana 实战&#xff0c;打…...

SpringBoot+Mybatis通过自定义注解实现字段加密存储

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBootMybatis实现字段加密 ⏱️ 创作时间&#xff1a; 2025年04月…...

Vue3调度器错误解析,完美解决Unhandled error during execution of scheduler flush.

目录 Vue3调度器错误解析&#xff0c;完美解决Unhandled error during execution of scheduler flush. 一、问题现象与本质 二、七大高频错误场景与解决方案 1、Setup初始化陷阱 2、模板中的"幽灵属性" 3、异步操作的"定时炸弹" 4、组件嵌套黑洞 5…...