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_fails
和fail_timeout
: 控制某台后端服务器在多少次失败后被认为不可用,以及多久后再重新尝试。
9. gzip
gzip on;
gzip_types text/plain application/json;
- 作用:启用或关闭响应的压缩功能,以减少传输的数据大小,提升性能。
- 常见配置:
gzip
: 启用或禁用压缩功能,设置为on
或off
。gzip_types
: 定义哪些 MIME 类型的文件会被压缩,常见的有text/html
、application/json
等。
10. log_format
和 access_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_certificate
和 ssl_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 证书,可以使用以下方式获取:
- 自签名证书(测试使用):可以使用
openssl
工具生成自签名证书。 - 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 的 Upgrade
和 Connection
头部。
完整的 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}
}
关键配置解释:
-
SSL 证书配置:
ssl_certificate
和ssl_certificate_key
:指定 SSL 证书和私钥的路径,用于 HTTPS 加密。ssl_protocols
和ssl_ciphers
:定义支持的 SSL/TLS 协议和加密套件。
-
WebSocket 升级:
proxy_set_header Upgrade $http_upgrade;
:告诉 Nginx 将普通的 HTTP 请求升级为 WebSocket 连接。proxy_set_header Connection "Upgrade";
:确保Connection
头部被正确设置为Upgrade
。proxy_read_timeout
和proxy_send_timeout
:配置 WebSocket 连接的超时,防止连接因空闲时间过长而被关闭。
-
代理到 WebSocket 服务:
proxy_pass http://localhost:31004;
:将 WebSocket 请求代理到后端实际运行的 WebSocket 服务器(例如运行 STOMP WebSocket 的 Spring Boot 服务)。
-
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);
});
常见问题及排查:
-
SSL 证书问题:
- 如果浏览器提示 SSL 证书无效,可能是因为使用了自签名证书。为了在生产环境中避免这种情况,建议使用 Let’s Encrypt 或其他可信的 CA 机构签发的证书。
-
WebSocket 升级失败:
- 如果 Nginx 没有正确处理 WebSocket 升级,可能会导致连接失败。检查 Nginx 日志以及浏览器开发者工具中的网络请求,确保请求的
Upgrade
和Connection
头部被正确处理。
- 如果 Nginx 没有正确处理 WebSocket 升级,可能会导致连接失败。检查 Nginx 日志以及浏览器开发者工具中的网络请求,确保请求的
-
跨域问题:
- 如果前端和后端的域名或端口不一致,可能会导致跨域问题。确保 Nginx 和后端应用正确配置了
CORS
。
- 如果前端和后端的域名或端口不一致,可能会导致跨域问题。确保 Nginx 和后端应用正确配置了
-
客户端使用 HTTPS:
- 如果前端页面是通过 HTTPS 访问的,WebSocket 连接必须使用
wss://
协议,否则浏览器会阻止不安全的连接。
- 如果前端页面是通过 HTTPS 访问的,WebSocket 连接必须使用
总结
通过上述步骤,你可以在 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]的元素组合个数 转换而来,其中j为nums所有元素的下标 而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的…...

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

安装R和RStudio:开始你的数据分析之旅
数据分析是当今世界中一个非常热门的领域,而R语言是进行数据分析的强大工具之一。R是一种编程语言和软件环境,用于统计计算和图形表示。RStudio是一个集成开发环境(IDE),它为R语言提供了一个更加友好和高效的工作环境。…...
如何使用python连接数据库?
数据分析离不开数据库,如何使用python连接数据库呢?听我娓娓道来哈 该笔记参考了PyMySQL官方文档和《python数据采集》关于数据存储的部分,欢迎大家去阅读原著,相信会理解的更加透彻。 补充:文末增加Oracle数据库的连…...

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

MySQL 创建子账号
1. 使用 root 账号登录 MySQL 使用 root 账号登录 MySQL,登录成功如图所示: 新建一个 MySQL 子账号,新建子账号命令如下: 命令 : CREATE USER testlocalhost IDENTIFIED BY 123456;若出现如下图所示,则表示新建 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端一键登录能力
在如今的移动互联网环境中,App端的一键登录功能逐渐成为提升用户体验的关键。用户不再需要繁琐的注册流程或输入短信验证码,一键即可通过手机号码完成登录。而阿里云融合认证中,一键登录能力为移动应用提供了一个简单、便捷且安全的用户身份验…...

基于YOLO11/v10/v8/v5深度学习的安检X光危险品检测与识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...

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

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

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

自然语言处理(NLP)论文数量的十年趋势:2014-2024
引言 近年来,自然语言处理(NLP)已成为人工智能(AI)和数据科学领域中的关键技术之一。随着数据规模的不断扩大和计算能力的提升,NLP技术从学术研究走向了广泛的实际应用。通过观察过去十年(2014…...
.net core API中使用LiteDB
LiteDB介绍 LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。 无服务器的 NoSQL 文档存储简单的 API,类似于 MongoDB100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.3/2.0,以单个 DLL(不到 450KB)形式提供线程安全…...

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

根据请求错误的状态码判断代理配置问题
SafeLine,中文名 “雷池”,是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、XSS、 代码注入、命…...
Python 网络爬虫高阶用法
网络爬虫成为了自动化数据抓取的核心工具。Python 拥有强大的第三方库支持,在网络爬虫领域的应用尤为广泛。本文将深入探讨 Python 网络爬虫的高阶用法,包括处理反爬虫机制、动态网页抓取、分布式爬虫以及并发和异步爬虫等技术。以下内容结合最新技术发展…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...