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

一个高性能的HTTP和反向代理服务器:Nginx

目录

■核心特性

■安装和配置Nginx

1 安装Nginx

2 基本配置

3 常用管理命令

4 基本配置文件结构

5 针对AI模型服务的反向代理配置

6 SSL/HTTPS配置(可选)

7 Orin:性能优化配置

8 监控和日志

■容器化部署Nginx

1 使用官方Nginx镜像

2 运行Nginx容器



Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它以高并发低内存占用高稳定性著称。

核心特性

特性

说明

反向代理

接收客户端请求,转发到后端服务器

负载均衡

多台服务器间分配请求负载

静态文件服务

高效处理HTML、CSS、JS、图片等静态资源

SSL/TLS终端

处理HTTPS加密解密

缓存

缓存响应内容,减轻后端压力

高并发

事件驱动架构,支持数万并发连接

安装和配置Nginx

Nginx在Orin平台上的使用与标准Linux系统基本相同,但需要注意Orin平台特点ARM64架构 ;集成GPU和CPU ;适用于边缘计算和AI应用 ;功耗相对较低 ;适合部署轻量级服务.

1 安装Nginx

# 更新包列表sudo apt update# 安装Nginxsudo apt install nginx 
# 检查安装状态nginx -vsystemctl status nginx

2 基本配置

启动和管理Nginx服务

# 启动Nginxsudo systemctl start nginx 
# 设置开机自启sudo systemctl enable nginx 
# 检查状态sudo systemctl status nginx 
# 重启Nginxsudo systemctl restart nginx 
# 重新加载配置(不中断服务)sudo systemctl reload nginx

3 常用管理命令

# 测试配置文件语法sudo nginx -t# 重新加载配置(不重启服务)sudo nginx -s reload# 优雅停止服务sudo nginx -s quit# 强制停止服务sudo nginx -s stop# 查看Nginx进程ps aux | grep nginx# 查看监听端口sudo netstat -tlnp | grep nginx

4 基本配置文件结构

# 主配置文件/etc/nginx/nginx.conf# 站点配置文件目录/etc/nginx/sites-available/# 启用站点的符号链接/etc/nginx/sites-enabled/# 日志文件/var/log/nginx/access.log/var/log/nginx/error.log

5 针对AI模型服务的反向代理配置

配置Qwen2.5VL-7B服务代理示例

sudo tee /etc/nginx/sites-available/ai-model << 'EOF'
upstream ai_backend {server 127.0.0.1:11434;keepalive 32;
}server {listen 80;server_name localhost;# 增加客户端请求大小限制(适用于大模型)client_max_body_size 100M;# 增加超时时间(AI推理可能需要较长时间)proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;# 静态文件服务location / {root /var/www/html;index index.html;}# AI模型API代理location /api/ {proxy_pass http://ai_backend/;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_cache_bypass $http_upgrade;}# 健康检查端点location /health {access_log off;return 200 "healthy\n";add_header Content-Type text/plain;}
}
EOF# 启用配置
sudo ln -sf /etc/nginx/sites-available/ai-model /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置
sudo systemctl reload nginx

6 SSL/HTTPS配置(可选)

生成自签名证书(测试用)

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/nginx-selfsigned.key \-out /etc/ssl/certs/nginx-selfsigned.crt

命令参数解释

-x509 : 生成自签名证书

-nodes : 不加密私钥文件

-days 365 : 证书有效期365天

-newkey rsa:2048 : 生成2048位RSA密钥

-keyout : 指定私钥文件输出路径

-out : 指定证书文件输出路径

这两个文件是SSL/TLS加密通信所需的核心文件

私钥文件 (/etc/ssl/private/nginx-selfsigned.key)

包含服务器的私钥(Private Key)用于解密客户端用公钥加密的数据必须严格保密,不能泄露只在服务器端保存,永不发送给客户端

证书文件 (/etc/ssl/certs/nginx-selfsigned.crt)

包含服务器的公钥证书(Public Certificate)发送给客户端用于加密通信数据 包含服务器身份信息和公钥 可以公开分发

证书工作机制

SSL/TLS握手过程

1客户端连接到HTTPS服务器

2服务器发送证书文件(.crt)给客户端

3客户端验证证书有效性

4客户端用证书中的公钥加密会话密钥

5 服务器用私钥文件(.key)解密会话密钥

6双方用会话密钥进行对称加密通信

HTTPS配置

sudo tee /etc/nginx/sites-available/https-ai << 'EOF'
server {listen 443 ssl;server_name localhost;ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;# AI模型服务配置location / {proxy_pass http://127.0.0.1:11434;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 localhost;return 301 https://$server_name$request_uri;
}
EOFsudo ln -sf /etc/nginx/sites-available/https-ai /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

7 Orin:性能优化配置

优化Nginx配置

sudo tee /etc/nginx/nginx.conf << 'EOF'
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;events {worker_connections 1024;use epoll;multi_accept on;
}http {sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;keepalive_requests 1000;types_hash_max_size 2048;# 基本优化client_max_body_size 100M;client_body_timeout 120s;client_header_timeout 120s;send_timeout 120s;# MIME类型include /etc/nginx/mime.types;default_type application/octet-stream;# 日志格式log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;error_log /var/log/nginx/error.log;# Gzip压缩gzip on;gzip_vary on;gzip_min_length 1024;gzip_types text/plain text/css application/json application/javascript text/xml application/xml;# 包含站点配置include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;
}
EOF

8 监控和日志

# 实时查看访问日志tail -f /var/log/nginx/access.log# 查看错误日志tail -f /var/log/nginx/error.log 
# 统计访问量awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

可以在Orin平台上成功部署Nginx作为Web服务器和反向代理,为AI模型服务提供稳定、高效的访问入口。

容器化部署Nginx

1 使用官方Nginx镜像

sudo docker pull nginx:latest

2 运行Nginx容器

# 创建本地配置目录mkdir -p ~/nginx-config/{conf.d,certs,html} 
# 运行容器并挂载配置sudo docker run -d \ --name nginx-container \ -p 80:80 \ -p 443:443 \ -v ~/nginx-config/conf.d:/etc/nginx/conf.d \ -v ~/nginx-config/certs:/etc/nginx/certs \ -v ~/nginx-config/html:/usr/share/nginx/html \ nginx:latest
# 或者docker run -d --privileged=true --restart=always --network host -v /home/test/nginx:/etc/nginx/conf.d -v /var/www:/var/www  --name nginx nginx:latest

至此,本文分享的内容就结束了。

http://www.dtcms.com/a/427141.html

相关文章:

  • 人工智能客服应用如何重塑电商服务生态?智能AI软件带来的三大变革
  • 网站建设的注意学校网站开发方案模板
  • 分布式架构初识:为什么需要分布式
  • asp网站用ftp怎么替换图片办公室oa管理系统
  • 个性化的个人网站广州企业开办一网通
  • Transformer(一)---背景介绍及架构介绍
  • 【完整源码+数据集+部署教程】气动铣刀型号分类图像分割系统: yolov8-seg-C2f-SCConv
  • 【Android】强制使用 CPU 大核或超大核
  • 【算法竞赛学习笔记】基础概念篇:算法复杂度
  • SLA操作系统双因素认证实现Windows远程桌面OTP双因子安全登录—从零搭建企业级RDP安全加固体系
  • 现在主流的网站开发语言360房产网郑州官网
  • 石家庄哪个公司做网站好做外贸c2c网站有哪些
  • 伪路径约束
  • 新天力:以全链协同能力构筑食品容器行业领军优势
  • Markdown转换为Word:Pandoc模板使用指南
  • Cloudflare 开源 VibeSDK:开启“氛围编程”新时代的全栈 AI 应用生成平台
  • 汕头网站建设sagevis企业网站建设有什么好处
  • C语言趣味小游戏----猜数字小游戏
  • 多表关联对集中式数据库和分布式数据库系统冲击
  • Suifest 2025 活动速递
  • 交叉熵损失函数和负对数似然损失函数 KL散度
  • 坪地网站建设教程网站seo优化方法
  • 网站数据库多大合适成都小型软件开发公司
  • Gibbs采样:全面解析马尔可夫链蒙特卡洛的核心算法
  • 【开题答辩全过程】以 python的音乐网站为例,包含答辩的问题和答案
  • 二项式定理——力扣2221.数组的三角和
  • 【数据结构】快速排序与归并排序的实现
  • LeetCode算法日记 - Day 57: 括号生成、组合
  • FinalShell 服务器远程连接工具
  • 分享:一键自动化巡检服务器