Nginx 常用命令和部署详解及案例示范
一、Nginx常用命令
1.1 启动 Nginx
要启动 Nginx 服务,可以使用以下命令:
sudo systemctl start nginx
1.2 停止 Nginx
如果需要停止 Nginx 服务,可以使用以下命令:
sudo systemctl stop nginx
1.3 重启 Nginx
在修改了 Nginx 配置文件后,需要重启 Nginx 以使更改生效。可以使用以下命令:
sudo systemctl restart nginx
1.4 重新加载配置
当修改了配置文件,但不希望停止服务时,可以使用以下命令重新加载配置:
sudo systemctl reload nginx
1.5 查看 Nginx 状态
要查看 Nginx 的当前运行状态,可以使用以下命令:
sudo systemctl status nginx
这将显示 Nginx 是否正在运行,以及其相关信息。
1.6 测试配置文件
在修改 Nginx 配置文件后,可以使用以下命令测试配置的正确性:
sudo nginx -t
如果配置文件正确,会返回 “syntax is ok” 和 “test is successful” 的信息。如果有错误,则会给出具体的错误信息和所在的配置文件行数。
1.7 查看 Nginx 日志
Nginx 的错误日志和访问日志通常位于 /var/log/nginx 目录中。以下命令可以实时查看错误日志:
tail -f /var/log/nginx/error.log
访问日志可以使用类似的命令查看:
tail -f /var/log/nginx/access.log
1.8 查看 Nginx 进程
要查看当前运行的 Nginx 进程,可以使用以下命令:
ps aux | grep nginx
这将列出所有 Nginx 相关的进程信息,包括主进程和工作进程。
1.9 配置 Nginx 开机自启动
要设置 Nginx 在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable nginx
1.10 禁用 Nginx 开机自启动
如果需要禁用 Nginx 在系统启动时自动启动,可以使用以下命令:
sudo systemctl disable nginx
二、在 CentOS 上部署 Nginx
2.1 安装 Nginx
在 CentOS 上安装 Nginx 可以通过 EPEL(Extra Packages for Enterprise Linux)仓库或源代码编译来完成。下面介绍使用 yum 安装的方法:
# 安装 EPEL 仓库
sudo yum install epel-release# 安装 Nginx
sudo yum install nginx# 启动 Nginx
sudo systemctl start nginx# 设置开机自启动
sudo systemctl enable nginx
2.2 验证安装
安装完成后,可以通过以下命令检查 Nginx 的状态:
sudo systemctl status nginx
然后在浏览器中输入 http://your_server_ip,如果看到 Nginx 的欢迎页面,说明安装成功。
2.3 Nginx 配置文件
Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf。下面是一个基本的配置示例:
worker_processes auto;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {root /usr/share/nginx/html; # 静态文件路径index index.html index.htm; # 默认首页}error_page 404 /404.html; # 自定义404页面location = /404.html {internal;}}
}
三、在 Docker 中部署 Nginx
3.1 Docker 安装
首先,需要在 CentOS 上安装 Docker:
# 更新 yum
sudo yum update# 安装必要的依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 官方的 yum 源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装 Docker
sudo yum install docker-ce# 启动 Docker
sudo systemctl start docker# 设置开机自启动
sudo systemctl enable docker
3.2 拉取 Nginx 镜像
sudo docker pull nginx
3.3 运行 Nginx 容器
以下是启动 Nginx 容器的命令:
sudo docker run --name my-nginx -p 80:80 -d nginx
此命令将 Nginx 运行在后台并映射到宿主机的 80 端口。
四、Docker 挂载 HTML 文件实现实时刷新数据
在实际开发中,我们可能需要实时更新 Nginx 提供的静态资源。可以通过 Docker 的挂载功能来实现这一点。
4.1 准备 HTML 文件
创建一个 HTML 文件夹,并在其中添加一个简单的 HTML 文件。
mkdir ~/nginx-html
echo "<h1>Hello, Nginx!</h1>" > ~/nginx-html/index.html
4.2 启动 Nginx 容器并挂载目录
使用以下命令启动 Nginx 容器,同时将宿主机的 HTML 文件夹挂载到容器内:
sudo docker run --name my-nginx -p 80:80 -v ~/nginx-html:/usr/share/nginx/html -d nginx
在这个命令中,-v ~/nginx-html:/usr/share/nginx/html 将宿主机的 ~/nginx-html 目录挂载到 Nginx 容器的 /usr/share/nginx/html 目录中。
4.3 实时刷新数据
修改 ~/nginx-html/index.html 文件的内容,Nginx 会自动加载新的内容。比如可以添加如下内容:
<h1>Hello, Nginx! Updated!</h1>
保存文件后,刷新浏览器,即可看到更新的内容。
五、使用 Nginx 的数据分析系统案例
在数据分析系统中,Nginx 可以用作静态文件服务器和反向代理,以提高系统的性能和安全性。以下是一个简单的使用案例:
5.1 场景描述
假设我们有一个数据分析系统,前端使用 React 构建,后端使用 Node.js 提供 API。我们希望通过 Nginx 将静态文件和 API 请求分发到不同的服务。
5.2 Nginx 配置示例
server {listen 80;server_name analytics.example.com;# 静态文件服务location / {root /usr/share/nginx/html; # 前端构建的静态文件路径index index.html;try_files $uri $uri/ /index.html;}# 反向代理到 Node.js 后端location /api {proxy_pass http://localhost:3000; # Node.js 服务地址proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}
}
六、性能优化
在高并发场景中,优化 Nginx 的性能是非常重要的。以下是一些常见的优化方法:
6.1 调整工作进程和连接数
根据服务器的 CPU 核心数调整 worker_processes 和 worker_connections 参数:
worker_processes auto; # 自动设置为 CPU 核心数
worker_connections 2048; # 增加最大连接数
6.2 开启缓存
通过启用缓存,减轻后端服务器的压力:
proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
6.3 压缩传输
通过开启 gzip 压缩,减少数据传输量:
gzip on;
gzip_types text/plain application/json application/javascript text/css;
gzip_min_length 1000; # 只有大于1000字节的文件才进行压缩
相关文章:
Nginx 常用命令和部署详解及案例示范
一、Nginx常用命令 1.1 启动 Nginx 要启动 Nginx 服务,可以使用以下命令: sudo systemctl start nginx1.2 停止 Nginx 如果需要停止 Nginx 服务,可以使用以下命令: sudo systemctl stop nginx1.3 重启 Nginx 在修改了 Nginx…...
GO大模型应用开发框架-
Eino 旨在提供基于 Golang 语言的终极大模型应用开发框架。 它从开源社区中的诸多优秀 LLM 应用开发框架,如 LangChain 和 LlamaIndex 等获取灵感,同时借鉴前沿研究成果与实际应用,提供了一个强调简洁性、可扩展性、可靠性与有效性࿰…...
保姆级!springboot访问Ollama API并调用DeepSeek模型 Api
要在springboot中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java通过api 调用 使用Spring Boot + Sprin…...
力扣hot100 ——搜索二维矩阵 || m+n复杂度优化解法
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 解题思路: 借助行和列有序特性,不断按行或者列缩小范围;途中数字表示每…...
娱乐使用,可以生成转账、图片、聊天等对话内容
软件介绍 今天要给大家介绍一款由吾爱大佬 lifeixue 开发的趣味软件。它的玩法超丰富,能够生成各式各样的角色,支持文字聊天、发红包、转账、发语音以及分享图片等多种互动形式,不过在分享前得着重提醒,此软件仅供娱乐࿰…...
【PyQt5】python可视化开发:PyQt5介绍,开发环境搭建快速入门
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
使用 FFmpeg 剪辑视频指南
FFmpeg 是一个功能强大的多媒体处理工具,可以进行视频和音频的剪辑、合并、转码等操作。本文将详细介绍如何使用 FFmpeg 进行视频剪辑,并通过实例帮助你快速掌握剪辑技巧。我们会从最基础的剪切功能讲起,再延伸到一些高级操作,如指…...
AWS云从业者认证题库 AWS Cloud Practitioner
题库持续更新,上方二维码查看完整题库! 在分担责任模型下,客户对以下哪项负责? A:确保在使用后擦除磁盘驱动器 B:确保在硬件设备上更新固件 C:确保静态数据已加密 D:确保网线为六类或更高类…...
高性能内存对象缓存Memcached详细实验操作
目录 前提准备: cache1,2: 客户端cache-api(一定得是LAMP环境) memcache实现主主复制以及高可用(基于以上完成) cache1,2: memcachekeepalived(基于以上完成) cache1,2: 前提准备: 1. 准备三台cent…...
【C++复习专题】—— 类和对象,包含类的引入、访问限定符、类的6个默认成员函数等
1.类的定义 class classname {//类体:由成员函数和成员变量组成 }; class为定义类的关键字,classname为类的名字,{}中为类的主体。 类体中的内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方…...
Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…...
Windows 图形显示驱动开发-CPU 内存调节和64KB 页面支持
对于 32 位 OS 离散图形处理单元 (GPU) 不支持可调整大小的 BAR,或者当调整帧缓冲区 BAR 的大小失败时,Windows 显示驱动程序模型 (WDDM) v2 将提供一种替代机制,通过该机制可以有效地访问离散 GPU VRAM。 对于支持可编程 BAR 地址空间的 GPU…...
PLC通信交互系统技术分享
目录 0、前言 1、模块划分 2、状态机 3、通信层增强 4、异常处理机制 5、核心代码 关键状态处理示例 6、部署与测试方案 1. 环境要求 2. 性能测试指标 0、前言 这是一个C程序,用于与西门子PLC进行通信,处理SN码、拍照信号、检测结果等流程。代码…...
ceph HEALTH_WARN clock skew detected on mon.f, mon.o, mon.p, mon.q
问题 ceph health detail[WRN] MON_CLOCK_SKEW: clock skew detected on mon.f, mon.o, mon.p, mon.qmon.f clock skew 0.243128s > max 0.05s (latency 0.000836159s)mon.o clock skew 16.249s > max 0.05s (latency 0<...
Git命令行入门
诸神缄默不语-个人CSDN博文目录 之前写过一篇VSCode Git的博文:VSCode上的Git使用手记(持续更新ing…) 现在随着开发经历增加,感觉用到命令行之类复杂功能的机会越来越多了,所以我专门再写一篇Git命令行的文章。 G…...
pdf-extract-kit paddle paddleocr pdf2markdown.py(效果不佳)
GitHub - opendatalab/PDF-Extract-Kit: A Comprehensive Toolkit for High-Quality PDF Content Extraction https://github.com/opendatalab/PDF-Extract-Kit pdf2markdown.py 运行遇到的问题: 错误: -------------------------------------- C Tra…...
Android 10.0 移除wifi功能及相关菜单
介绍 客户的机器没有wifi功能,所以需要删除wifi相关的菜单,主要有设置-网络和互联网-WLAN,长按桌面设置弹出的WALN快捷方式,长按桌面-微件-设置-WLAN。 修改 Android10 上直接将config_show_wifi_settings改为false,这样wifi菜单的入口就隐…...
什么是Dubbo?Dubbo框架知识点,面试题总结
本篇包含什么是Dubbo,Dubbo的实现原理,节点角色说明,调用关系说明,在实际开发的场景中应该如何选择RPC框架,Dubbo的核心架构,Dubbo的整体架构设计及分层。 主页还有其他的面试资料,有需要的可以…...
Django+Vue3全栈开发实战:从零搭建博客系统
文章目录 1. 开发环境准备2. 创建Django项目与配置3. 设计数据模型与API4. 使用DRF创建RESTful API5. 创建Vue3项目与配置6. 前端页面开发与组件设计7. 前后端交互与Axios集成8. 项目优化与调试9. 部署上线10. 总结与扩展10.1 项目总结10.1.1 技术栈回顾10.1.2 项目亮点 10.2 扩…...
双重差分学习笔记
双重差分适用的研究场景: 研究某项政策或者冲击造成的影响 例如,某某小学在2024.12.12日颁布了小红花激励措施,我们要研究这项措施对学生成绩的影响,此时,就可以使用双重差分模型。 双重差分适用的数据类型…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
结构化文件管理实战:实现目录自动创建与归类
手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题,进而引发后续程序异常。使用工具进行标准化操作,能有效降低出错概率。 需要快速整理大量文件的技术用户而言,这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB,…...
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀” 在JavaScript中,我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时,单纯依赖字符串或数组就显得力不从心了。这时ÿ…...
【R语言编程——数据调用】
这里写自定义目录标题 可用库及数据集外部数据导入方法查看数据集信息 在R语言中,有多个库支持调用内置数据集或外部数据,包括studentdata等教学或示例数据集。以下是常见的库和方法: 可用库及数据集 openintro库 该库包含多个教学数据集&a…...
Redis专题-实战篇一-基于Session和Redis实现登录业务
GitHub项目地址:https://github.com/whltaoin/redisLearningProject_hm-dianping 基于Session实现登录业务功能提交版本码:e34399f 基于Redis实现登录业务提交版本码:60bf740 一、导入黑马点评后端项目 项目架构图 1. 前期阶段2. 后续阶段导…...
