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

在 Ubuntu 22.04 上安装并优化 Nginx nginx入门操作 稍难,需要有一定理论 多理解 多实践

 以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作

地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录

相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客

兑换码要是过期了,可以私信我获取最新兑换码!!!

之所以推荐给大家使用,是因为上面的云主机目前是免费使用的,不需要大家再去安装虚拟机,部署虚拟机,环境都搭配好了,非常适合新手入门,减少搭建的时间,把时间都用在实践上。

前提条件

  • 系统:Ubuntu 22.04(运行于 Proxmox VE 虚拟机)
  • 硬件:32GB 内存、16 核 CPU、50GB 磁盘
  • 网络:需连接互联网以下载软件包
  • 权限:需要 root 或 sudo 权限

安装步骤

1. 添加 Ondřej Surý 的 Nginx PPA

添加 PPA 以获取最新稳定版 Nginx(1.28.0)。

sudo add-apt-repository ppa:ondrej/nginx
sudo apt update

2. 安装 Nginx

安装 Nginx 稳定版及其依赖项。

sudo apt install nginx -y

3. 验证安装

检查 Nginx 版本并启动服务。

nginx -v  # 应显示 nginx version: nginx/1.28.0
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

在浏览器访问 http://<您的服务器IP>,应看到 Nginx 欢迎页面。

4. 开放防火墙端口

确保防火墙允许 HTTP 和 HTTPS 流量。

sudo ufw allow 80
sudo ufw allow 443
sudo ufw status

优化 Nginx 配置

1. 调整工作进程和连接

编辑 /etc/nginx/nginx.conf,优化多核利用率和高并发处理。

worker_processes auto;  # 自动检测 CPU 核心数(16 核)
worker_rlimit_nofile 65535;  # 增加文件描述符限制
events {worker_connections 8192;  # 每个进程的最大连接数multi_accept on;  # 允许多个连接同时接受use epoll;  # Linux 高效事件处理
}

2. 启用 Gzip 压缩

在 http 块内添加以下配置,减少数据传输量。

http {gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;gzip_min_length 256;gzip_comp_level 6;gzip_vary on;
}

3. 配置缓存

启用浏览器缓存,减少重复请求。编辑 /etc/nginx/sites-available/default,在 server 块内添加:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg|eot)$ {expires 365d;add_header Cache-Control "public, no-transform";
}

4. 启用 HTTP/2 和 TLS 1.3

安装 Let's Encrypt 证书以启用 HTTPS,并配置 HTTP/2 和 TLS 1.3。

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d <您的域名>

编辑 /etc/nginx/sites-available/default,确保 listen 指令支持 HTTP/2:

server {listen 443 ssl http2;ssl_certificate /etc/letsencrypt/live/<您的域名>/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/<您的域名>/privkey.pem;ssl_protocols TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
}

5. 优化系统参数

调整系统文件描述符限制,编辑 /etc/security/limits.conf,添加:

* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535

编辑 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive,确保包含:

session required pam_limits.so

调整内核参数,编辑 /etc/sysctl.conf,添加:

fs.file-max = 2097152
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65535

应用更改:

sudo sysctl -p

6. 验证优化

测试配置文件并重启 Nginx:

sudo nginx -t
sudo systemctl reload nginx

使用 curl 检查 HTTP/2 支持:

curl -I --http2 https://<您的域名>

注意事项

  • 版本确认:确保安装 Nginx 1.28.0,运行 nginx -v 验证。
  • 域名配置:HTTPS 需要有效域名,替换 <您的域名> 为实际域名。
  • 日志检查:如遇问题,查看 /var/log/nginx/error.log
  • PVE 环境:确保虚拟机网络配置(如桥接模式)允许外部访问。
  • 安全更新:定期运行 sudo apt update && sudo apt upgrade 更新 Nginx 和系统。

参考资料

  • Nginx 官方文档
  • Ondřej Surý PPA
  • DigitalOcean: 安装 Nginx
  • DigitalOcean: Let's Encrypt
  • Nginx 性能优化指南
http://www.xdnf.cn/news/1167031.html

相关文章:

  • 《Uniapp-Vue 3-TS 实战开发》自定义时间选择
  • Kafka基础理论速通
  • IDEA全局Maven配置
  • 比特币技术简史 第六章:网络协议 - P2P网络、节点类型与消息传播
  • 未来趋势:LeafletJS 与 Web3/AI 的融合
  • Visual Studio Code 远端云服务器开发使用指南
  • (3)重定向 | 时间相关指令 | 文件查找 | 打包与压缩
  • FastDFS 6.11.0 单机环境搭建与测试(附 Nginx 集成)+ docker构建+k8s启动文件
  • Linux异常与信号处理
  • 浙江大学PTA程序设计C语言基础编程练习题1-5
  • 【论文阅读 | TIV 2024 | CDC-YOLOFusion:利用跨尺度动态卷积融合实现可见光-红外目标检测】
  • 边缘计算网关赋能智慧农业:物联网边缘计算的创新应用与实践
  • 【每日算法】专题九_链表
  • python-FTP爆破脚本(phpstudy)-一点bug记录
  • C++性能优化擂台技术文章大纲
  • Unity笔记——事件中心
  • Web3介绍(Web 3.0)(一种基于区块链技术的去中心化互联网范式,旨在通过技术手段实现用户对数据的自主权、隐私保护和价值共享)
  • 算法第26天|贪心算法:用最少数量的箭引爆气球、无重叠区间、划分字母区间
  • solidity从入门到精通 第二章:Solidity初相见
  • AI 音频产品开发模板及流程(二)
  • 数据结构 堆(2)---堆的实现
  • Markdown 转 PDF API 数据接口
  • Android ViewModel 深度解析:原理、使用与最佳实践
  • Redis——Redis进阶命令集详解(下)
  • Docker Compose UI远程访问教程:结合贝锐花生壳实现内网穿透
  • Qt中QObject类的核心作用与使用
  • C++函数 vs Go函数
  • Qt基本控件使用:按钮、标签、文本框等
  • 【打怪升级 - 01】保姆级机器视觉入门指南:硬件选型 + CUDA/cuDNN/Miniconda/PyTorch 安装全流程(附版本匹配秘籍)
  • Kotlin多线程调试