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

Nginx应用配置实战

Nginx通用部署

Nginx常见参数介绍

Nginx 配置文件中的指令和参数决定了它的行为。下面详细介绍一些常见的 Nginx 参数,以帮助你更好地理解和配置 Nginx。

1. worker_processes

worker_processes auto;
  • 作用:设置 Nginx 处理请求的工作进程数量。auto 会根据 CPU 的核心数自动调整,或者你可以手动设置为特定的值。
  • 建议:通常将其设置为服务器 CPU 核心数,以最大化性能。如果服务器是多核的,使用 auto 是推荐做法。

2. worker_connections

worker_connections 1024;
  • 作用:每个 Nginx 工作进程能够处理的最大连接数。Nginx 的最大并发连接数是 worker_processes * worker_connections
  • 建议:如果你有大量的并发请求,适当增加该值。根据硬件和流量需求进行调整。

3. events

events {worker_connections 1024;
}
  • 作用:设置与网络事件处理相关的配置,比如连接的并发数和选择的事件模型。
  • 参数
    • use: 指定 Nginx 使用的事件处理模型,常见的是 epoll(Linux)或 kqueue(FreeBSD、MacOS)。
    • worker_connections: 如上所述,定义每个工作进程的最大连接数。

4. http

http {include /etc/nginx/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;...
}
  • 作用:HTTP 块是 Nginx 配置文件中最重要的块,包含了所有与 HTTP 相关的配置。
  • 常见配置
    • include /etc/nginx/mime.types: 引入 MIME 类型配置文件,帮助 Nginx 正确地返回文件的 MIME 类型。
    • default_type: 设置默认的 MIME 类型,如果无法自动识别某种文件的 MIME 类型,默认会用该类型,通常为 application/octet-stream
    • sendfile on: 启用 sendfile 选项,加速文件传输,建议保持开启。
    • keepalive_timeout 65: 设置保持连接超时时间,单位为秒,表示客户端和服务器之间空闲连接的最大持续时间。

5. server

server {listen 80;server_name example.com;...
}
  • 作用server 块用于定义一个虚拟主机,配置不同域名或 IP 地址对应的服务器行为。
  • 常见配置
    • listen 80: 监听指定的端口,80 为 HTTP 的默认端口,443 为 HTTPS 默认端口。
    • server_name: 定义该服务器块的域名(如 example.com),可以使用通配符,如 *.example.com,也可以使用 IP 地址。

6. location

location / {proxy_pass http://localhost:8080;...
}
  • 作用location 指令用于匹配 URL 路径,并为该路径定义不同的处理方式。它通常用于反向代理、静态文件服务等。
  • 常见配置
    • proxy_pass: 将请求代理到后端服务器。可以是本地应用或远程服务器。
    • root: 定义处理该路径时所使用的根目录。比如用于静态资源的存放路径。
    • index: 指定默认的主页文件,当访问某目录时,会默认查找的文件(如 index.html)。

7. proxy_pass

location / {proxy_pass http://localhost:8080;
}
  • 作用proxy_pass 是 Nginx 中用于反向代理的核心指令,它将匹配到的请求转发给指定的后端服务器。
  • 说明proxy_pass 可以代理 HTTP、HTTPS 甚至 FastCGI、uwsgi 等多种协议。

8. upstream

upstream backend {server backend1.example.com weight=5;server backend2.example.com;server 127.0.0.1:8080;
}
  • 作用upstream 定义后端服务器集群,用于负载均衡。在 proxy_pass 中可以将请求转发到 upstream 定义的服务器组。
  • 常见配置
    • server: 定义一个后端服务器,可以使用 IP 地址或域名。
    • weight: 为某个后端服务器分配更大的权重,默认值是 1。
    • max_failsfail_timeout: 控制某台后端服务器在多少次失败后被认为不可用,以及多久后再重新尝试。

9. gzip

gzip on;
gzip_types text/plain application/json;
  • 作用:启用或关闭响应的压缩功能,以减少传输的数据大小,提升性能。
  • 常见配置
    • gzip: 启用或禁用压缩功能,设置为 onoff
    • gzip_types: 定义哪些 MIME 类型的文件会被压缩,常见的有 text/htmlapplication/json 等。

10. log_formataccess_log

log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log main;
  • 作用log_format 用于定义访问日志的记录格式,而 access_log 用于指定日志的存储位置和使用的日志格式。
  • 常见配置
    • $remote_addr: 记录客户端 IP 地址。
    • $status: 记录请求的 HTTP 状态码。
    • $body_bytes_sent: 记录响应内容的大小(字节数)。

11. error_log

error_log /var/log/nginx/error.log warn;
  • 作用:配置错误日志文件的位置和记录级别。
  • 日志级别
    • debug: 记录所有级别的日志,包括调试信息。
    • info: 记录一般的运行信息。
    • notice: 记录需要注意的事件。
    • warn: 记录警告信息。
    • error: 记录错误信息。
    • crit: 记录严重错误。

12. client_max_body_size

client_max_body_size 50m;
  • 作用:限制客户端请求主体的最大大小。如果请求体超过这个限制,Nginx 会返回 413(Request Entity Too Large)错误。
  • 建议:在上传大文件时,可以适当增加这个值。

13. keepalive_timeout

keepalive_timeout 65;
  • 作用:设置客户端和服务器之间保持活动的连接的超时时间。超时后连接会被关闭。
  • 建议:根据需求调整,默认 65 秒适合大多数场景。

14. listen

listen 80;
listen [::]:80;
  • 作用:配置服务器监听的端口,通常是 HTTP 的 80 端口或 HTTPS 的 443 端口。
  • 参数
    • [::]:80: 表示监听所有 IPv6 地址。
    • ssl: 用于启用 SSL/TLS 加密。

15. ssl_certificatessl_certificate_key

ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
  • 作用:在配置 HTTPS 时,ssl_certificate 指定 SSL 证书的位置,ssl_certificate_key 指定私钥的位置。

16. return

return 301 https://$server_name$request_uri;
  • 作用:用于执行重定向或返回特定的 HTTP 状态码。
  • 参数
    • 301: 返回 301 永久重定向。
    • 302: 返回 302 临时重定向。

以上是 Nginx 配置文件中一些重要参数的详细介绍。根据你的应用场景,这些参数可以灵活组合使用,帮助你优化 Nginx 的性能和功能。

Nginx部署Java服务

Nginx 是一个轻量级、高性能的 Web 服务器,常用于反向代理、负载均衡和静态资源服务。下面详细讲解如何配置 Nginx 以部署 Java 服务。

1. 安装 Nginx

在大多数 Linux 发行版上,使用包管理器安装 Nginx:

# Ubuntu/Debian
sudo apt update
sudo apt install nginx# CentOS/RHEL
sudo yum install nginx

启动和检查 Nginx 是否正常运行:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

2. Nginx 基础配置文件

Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf。典型的目录结构如下:

  • /etc/nginx/nginx.conf: 主配置文件
  • /etc/nginx/conf.d/: 存放其他虚拟主机配置
  • /var/www/: 默认的网站根目录

Nginx 的基本配置结构如下:

worker_processes auto;
events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;include /etc/nginx/conf.d/*.conf;
}

3. 配置反向代理(用于 Java 服务)

假设你有一个基于 Spring Boot 的 Java 应用程序运行在 http://localhost:8080。你可以通过 Nginx 将外部请求转发给该 Java 服务。

/etc/nginx/conf.d/ 下创建一个配置文件,如 java_app.conf

server {listen 80;server_name example.com; # 将其替换为你的域名或服务器IPlocation / {proxy_pass http://localhost:8080; # 代理到 Java 服务的地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

说明

  • listen 80: 监听 HTTP 80 端口。
  • server_name: 配置你的域名或 IP 地址。
  • proxy_pass: 将请求代理到运行 Java 应用程序的本地地址(例如,localhost:8080)。
  • proxy_set_header: 传递客户端请求的一些信息到后端 Java 应用,比如 IP 地址和协议。

4. 配置 SSL(HTTPS)

为了保证安全,建议使用 HTTPS。可以通过 Let’s Encrypt 获取免费 SSL 证书。

安装 certbot 工具:

# Ubuntu
sudo apt install certbot python3-certbot-nginx

然后运行以下命令为你的域名获取证书:

sudo certbot --nginx -d example.com

Nginx 会自动配置 HTTPS。生成的配置大致如下:

server {listen 443 ssl;server_name example.com;ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}server {listen 80;server_name example.com;return 301 https://$host$request_uri;
}

说明

  • 443 端口用于 SSL。
  • 配置 SSL 证书路径,/etc/letsencrypt/live/ 存放的是通过 Let’s Encrypt 获取的证书。
  • 第二个 server 块会将所有 HTTP 请求重定向到 HTTPS。

5. Nginx 配置负载均衡

如果你的 Java 服务部署在多台服务器上,可以使用 Nginx 做负载均衡。配置示例:

upstream java_backend {server 192.168.1.10:8080;server 192.168.1.11:8080;server 192.168.1.12:8080;
}server {listen 80;server_name example.com;location / {proxy_pass http://java_backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

说明

  • upstream 块定义了一个名为 java_backend 的后端服务器组,可以配置多个 IP 地址进行负载均衡。
  • proxy_pass 将请求转发给该服务器组。

6. 常见 Nginx 命令

# 检查配置是否正确
sudo nginx -t# 重新加载 Nginx 配置
sudo systemctl reload nginx# 查看 Nginx 状态
sudo systemctl status nginx

7. 日志管理

Nginx 的访问日志和错误日志通常位于 /var/log/nginx/access.log/var/log/nginx/error.log

可以在 server 块中自定义日志路径:

server {listen 80;server_name example.com;access_log /var/log/nginx/java_app_access.log;error_log /var/log/nginx/java_app_error.log;location / {proxy_pass http://localhost:8080;}
}

Nginx配置举例

Nginx配置websocket

在基于 STOMP 协议的 WebSocket 应用中,如果你通过 Nginx 作为反向代理来处理 HTTPS(SSL/TLS)连接,并且需要支持 WebSocket,则需要确保 Nginx 正确处理 WebSocket 升级请求,同时配置 SSL 证书来启用 HTTPS

以下是如何在 Nginx 中配置 HTTPS,并支持基于 STOMP 协议的 WebSocket。

步骤一:准备 SSL 证书

要启用 HTTPS,首先你需要 SSL 证书。如果你没有 SSL 证书,可以使用以下方式获取:

  1. 自签名证书(测试使用):可以使用 openssl 工具生成自签名证书。
  2. Let’s Encrypt:可以通过 Let’s Encrypt 免费获取 SSL 证书(适合生产环境)。
生成自签名证书(测试使用):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.crt
  • 生成一个有效期为 365 天的自签名 SSL 证书和密钥文件,并将其存储在 /etc/nginx/ssl/ 路径下。

步骤二:配置 Nginx 支持 HTTPS 和 WebSocket

配置 Nginx 来支持 HTTPS 和 WebSocket 升级请求。在 Nginx 的 server 配置块中,需要同时启用 SSL 并配置 WebSocket 的 UpgradeConnection 头部。

完整的 Nginx 配置示例:
server {listen 443 ssl;server_name your-domain.com;  # 替换为你的域名或服务器 IP 地址# 配置 SSL 证书ssl_certificate /etc/nginx/ssl/server.crt;  # 替换为你的 SSL 证书路径ssl_certificate_key /etc/nginx/ssl/server.key;  # 替换为你的 SSL 私钥路径# SSL 配置ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;# WebSocket 相关配置location /ws {proxy_pass http://localhost:31004;  # 代理到后端 WebSocket 服务proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_read_timeout 3600;proxy_send_timeout 3600;proxy_set_header X-NginX-Proxy true;}# 通常的 HTTP/HTTPS 请求location / {proxy_pass http://localhost:8080;  # 代理到你的应用服务,例如Spring Boot应用proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}# 重定向 HTTP 到 HTTPS
server {listen 80;server_name your-domain.com;location / {return 301 https://$host$request_uri;  # 强制将 HTTP 重定向到 HTTPS}
}

关键配置解释:

  1. SSL 证书配置

    • ssl_certificatessl_certificate_key:指定 SSL 证书和私钥的路径,用于 HTTPS 加密。
    • ssl_protocolsssl_ciphers:定义支持的 SSL/TLS 协议和加密套件。
  2. WebSocket 升级

    • proxy_set_header Upgrade $http_upgrade;:告诉 Nginx 将普通的 HTTP 请求升级为 WebSocket 连接。
    • proxy_set_header Connection "Upgrade";:确保 Connection 头部被正确设置为 Upgrade
    • proxy_read_timeoutproxy_send_timeout:配置 WebSocket 连接的超时,防止连接因空闲时间过长而被关闭。
  3. 代理到 WebSocket 服务

    • proxy_pass http://localhost:31004;:将 WebSocket 请求代理到后端实际运行的 WebSocket 服务器(例如运行 STOMP WebSocket 的 Spring Boot 服务)。
  4. HTTP 重定向到 HTTPS

    • 配置第二个 server 块,监听端口 80,将所有 HTTP 请求重定向到 HTTPS。

步骤三:配置 Spring Boot WebSocket 支持

后端 Spring Boot 项目需要正确配置 WebSocket 支持,确保 WebSocket 端点和 STOMP 协议配置一致。

Spring Boot WebSocket 配置示例:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {// 这里的 /ws 是 WebSocket 连接端点,前端需要通过这个路径连接registry.addEndpoint("/ws").setAllowedOrigins("*")  // 允许跨域,或者指定域名.withSockJS();  // 如果需要兼容旧版浏览器,可以启用 SockJS}@Overridepublic void configureMessageBroker(MessageBrokerRegistry config) {// 配置消息代理config.enableSimpleBroker("/topic", "/queue");config.setApplicationDestinationPrefixes("/app");}
}

步骤四:前端 WebSocket 连接

在前端代码中,确保 WebSocket 连接使用 wss:// 协议,因为你正在通过 HTTPS 加密连接。

前端示例代码:
// 使用 wss:// 进行 WebSocket 连接
const wsUrl = 'wss://your-domain.com/ws';
const socket = new WebSocket(wsUrl);// 使用 STOMP 协议
const stompClient = Stomp.over(socket);stompClient.connect({}, function (frame) {console.log('Connected: ' + frame);// 订阅消息stompClient.subscribe('/topic/messages', function (message) {console.log('Received: ' + message.body);});// 发送消息stompClient.send('/app/hello', {}, JSON.stringify({ name: 'Hello World' }));
}, function (error) {console.error('Connection error: ', error);
});

常见问题及排查:

  1. SSL 证书问题

    • 如果浏览器提示 SSL 证书无效,可能是因为使用了自签名证书。为了在生产环境中避免这种情况,建议使用 Let’s Encrypt 或其他可信的 CA 机构签发的证书。
  2. WebSocket 升级失败

    • 如果 Nginx 没有正确处理 WebSocket 升级,可能会导致连接失败。检查 Nginx 日志以及浏览器开发者工具中的网络请求,确保请求的 UpgradeConnection 头部被正确处理。
  3. 跨域问题

    • 如果前端和后端的域名或端口不一致,可能会导致跨域问题。确保 Nginx 和后端应用正确配置了 CORS
  4. 客户端使用 HTTPS

    • 如果前端页面是通过 HTTPS 访问的,WebSocket 连接必须使用 wss:// 协议,否则浏览器会阻止不安全的连接。

总结

通过上述步骤,你可以在 Nginx 中配置 HTTPS,并支持基于 STOMP 协议的 WebSocket。关键在于:

  • 正确处理 WebSocket 的升级请求,确保 Nginx 代理能够支持 WebSocket 连接。
  • 配置 SSL 证书,以启用 HTTPS 和 WSS 加密连接。
  • Spring Boot 的 WebSocket 端点配置,确保前端能够连接到正确的 WebSocket 服务。

后续配置举例持续更新中~

相关文章:

Nginx应用配置实战

Nginx通用部署 Nginx常见参数介绍 Nginx 配置文件中的指令和参数决定了它的行为。下面详细介绍一些常见的 Nginx 参数,以帮助你更好地理解和配置 Nginx。 1. worker_processes worker_processes auto;作用:设置 Nginx 处理请求的工作进程数量。auto …...

html实现倒计时

参考网址 <!DOCTYPE html> <html> <head><title>倒计时示例</title> </head> <body><h1 id"titleCountDown"></h1><div id"countdown"></div><script>// 目标日期var targetDat…...

HTMLCSS练习

1) 效果如下 2) 代码如下 2.1) HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" conte…...

LeetCode讲解篇之377. 组合总和 Ⅳ

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 总和为target的元素组合个数 可以由 总和为target - nums[j]的元素组合个数 转换而来&#xff0c;其中j为nums所有元素的下标 而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的…...

Midjourney中文版:创意无限,艺术之旅由此启程

Midjourney中文版——一个将你的文字想象转化为视觉艺术的神奇平台。无需繁琐的绘画技巧&#xff0c;只需简单的文字描述&#xff0c;你就能开启一场前所未有的艺术之旅。 Midjourney AI超强绘画 (原生态系统&#xff09;用户端&#xff1a;Ai Loadinghttps://www.mjdiscord.c…...

安装R和RStudio:开始你的数据分析之旅

数据分析是当今世界中一个非常热门的领域&#xff0c;而R语言是进行数据分析的强大工具之一。R是一种编程语言和软件环境&#xff0c;用于统计计算和图形表示。RStudio是一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;它为R语言提供了一个更加友好和高效的工作环境。…...

如何使用python连接数据库?

数据分析离不开数据库&#xff0c;如何使用python连接数据库呢&#xff1f;听我娓娓道来哈 该笔记参考了PyMySQL官方文档和《python数据采集》关于数据存储的部分&#xff0c;欢迎大家去阅读原著&#xff0c;相信会理解的更加透彻。 补充&#xff1a;文末增加Oracle数据库的连…...

停车位识别数据集 图片数量12416张YOLO,xml和txt标签都有; 2类类别:space-empty,space-occupied;

YOLO停车位识别 图片数量12416张&#xff0c;xml和txt标签都有&#xff1b; 2类类别&#xff1a;space-empty&#xff0c;space-occupied&#xff1b; 用于yolo&#xff0c;Python&#xff0c;目标检测&#xff0c;机器学习&#xff0c;人工智能&#xff0c;深度学习&#xff0…...

MySQL 创建子账号

1. 使用 root 账号登录 MySQL 使用 root 账号登录 MySQL&#xff0c;登录成功如图所示&#xff1a; 新建一个 MySQL 子账号&#xff0c;新建子账号命令如下&#xff1a; 命令 : CREATE USER testlocalhost IDENTIFIED BY 123456;若出现如下图所示&#xff0c;则表示新建 MySQL…...

代码随想录 106. 岛屿的周长

106. 岛屿的周长 #include<bits/stdc.h> using namespace std;int main(){int n, m;cin >> n >> m;vector<vector<int>> mp(n, vector<int>(m, 0));for (int i 0; i < n; i){for (int j 0; j < m; j){cin >> mp[i][j];}}in…...

阿里云融合认证中的App端一键登录能力

在如今的移动互联网环境中&#xff0c;App端的一键登录功能逐渐成为提升用户体验的关键。用户不再需要繁琐的注册流程或输入短信验证码&#xff0c;一键即可通过手机号码完成登录。而阿里云融合认证中&#xff0c;一键登录能力为移动应用提供了一个简单、便捷且安全的用户身份验…...

基于YOLO11/v10/v8/v5深度学习的安检X光危险品检测与识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…...

vue-插槽作用域实用场景

vue-插槽作用域实用场景 1.插槽1.1 自定义列表渲染1.2 数据表格组件1.3 树形组件1.4 表单验证组件1.5 无限滚动组件 1.插槽 插槽感觉知道有这个东西&#xff0c;但是挺少用过的&#xff0c;每次看到基本都会再去看一遍用法和概念。但是在项目里&#xff0c;自己还是没有用到过…...

Prometheus+Grafana 监控 K8S Ingress-Ningx Controller

文章目录 一、prometheus中添加ingress-nginx的服务发现配置二、ingress-nginx controller的service添加端口暴露监控指标三、grafana添加ingress-nginx controller的监控模版 ingress-nginx默认是没有开启监控指标的&#xff0c;需要我们在ingress-nginx controller的svc里面开…...

如何在Visual Studio 2019中创建.Net Core WPF工程

如何在Visual Studio 2019中创建.Net Core WPF工程 打开Visual Studio 2019&#xff0c;选择Create a new project 选择WPF App(.Net Core) 输入项目名称和位置&#xff0c;单击Create 这样我们就创建好了一个WPF工程 工程文件说明 Dependencies 当前项目所使用的依赖库&…...

自然语言处理(NLP)论文数量的十年趋势:2014-2024

引言 近年来&#xff0c;自然语言处理&#xff08;NLP&#xff09;已成为人工智能&#xff08;AI&#xff09;和数据科学领域中的关键技术之一。随着数据规模的不断扩大和计算能力的提升&#xff0c;NLP技术从学术研究走向了广泛的实际应用。通过观察过去十年&#xff08;2014…...

.net core API中使用LiteDB

LiteDB介绍 LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。 无服务器的 NoSQL 文档存储简单的 API&#xff0c;类似于 MongoDB100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.3/2.0&#xff0c;以单个 DLL&#xff08;不到 450KB&#xff09;形式提供线程安全…...

YOLO_V8分割

YOLO_V8分割 YOLO安装 pip install ultralytics YOLO的数据集转化看csdn 数据标注EIseg EIseg这块&#xff0c;正常安装就好&#xff0c;但是numpy和各类包都容易有冲突&#xff0c;python版本装第一点 数据标注过程中&#xff0c;记得把JSON和COCO都点上&#xff0c;把自…...

根据请求错误的状态码判断代理配置问题

SafeLine&#xff0c;中文名 “雷池”&#xff0c;是一款简单好用, 效果突出的 Web 应用防火墙(WAF)&#xff0c;可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、XSS、 代码注入、命…...

Python 网络爬虫高阶用法

网络爬虫成为了自动化数据抓取的核心工具。Python 拥有强大的第三方库支持&#xff0c;在网络爬虫领域的应用尤为广泛。本文将深入探讨 Python 网络爬虫的高阶用法&#xff0c;包括处理反爬虫机制、动态网页抓取、分布式爬虫以及并发和异步爬虫等技术。以下内容结合最新技术发展…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...