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_processesworker_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字节的文件才进行压缩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025鸿蒙开发面试题汇总——通俗易懂

问题和通俗易懂的答案&#xff0c;覆盖鸿蒙开发的核心知识点和实际场景&#xff0c;方便面试时快速评估候选人能力&#xff1a; 一、基础概念&#xff08;必问&#xff09; 鸿蒙和安卓最大的区别是什么&#xff1f;举个实际例子。 答案&#xff1a;鸿蒙是“分布式操作系统”&am…

Kotlin 优雅的接口实现

1. 日常遇到的冗余的接口方法实现 日常开发中&#xff0c;经常会要实现接口&#xff0c;但是很多场景中&#xff0c;只需要用到其中一两个方法&#xff0c;例如 ActivityLifecycleCallbacks&#xff0c;它有很多个接口需要实现&#xff0c;但是很多时候我们只需要用到其中的一…

Java List 自定义对象排序 Java 8 及以上版本使用 Stream API

从 Java 8 开始&#xff0c;你可以使用 Stream API 对 List 进行排序&#xff0c;这种方式更加简洁和灵活。 以下是一个示例代码&#xff1a; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;// 自定…

【Spring详解一】Spring整体架构和环境搭建

一、Spring整体架构和环境搭建 1.1 Spring的整体架构 Spring框架是一个分层架构&#xff0c;包含一系列功能要素&#xff0c;被分为大约20个模块 Spring核心容器&#xff1a;包含Core、Bean、Context、Expression Language模块 Core &#xff1a;其他组件的基本核心&#xff…

Linux内核读写锁与读写信号量的区别及选用

在Linux内核中&#xff0c;读写锁&#xff08;rwlock_t&#xff09;和读写信号量&#xff08;struct rw_semaphore&#xff09;是两种不同的同步机制&#xff0c;适用于不同的场景。以下是它们的区别和选用建议&#xff1a; 核心区别 特性读写锁 (rwlock_t)读写信号量 (struct…

用openresty和lua实现壁纸投票功能

背景 之前做了一个随机壁纸接口&#xff0c;但是不知道大家喜欢对壁纸的喜好&#xff0c;所以干脆在实现一个投票功能&#xff0c;让用户给自己喜欢的壁纸进行投票。 原理说明 1.当访问http://demo.com/vote/时&#xff0c;会从/home/jobs/webs/imgs及子目录下获取图片列表&…

LLaMA 3.1 模型在DAMODEL平台的部署与实战:打造智能聊天机器人

文章目录 前言 一、LLaMA 3.1 的特点 二、LLaMA3.1的优势 三、LLaMA3.1部署流程 &#xff08;一&#xff09;创建实例 &#xff08;二&#xff09;通过JupyterLab登录实例 &#xff08;3&#xff09;部署LLaMA3.1 &#xff08;4&#xff09;使用教程 总结 前言 LLama3…

【Python爬虫(25)】解锁Python爬虫:数据存储的最优选择与高效策略

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…

【复现DeepSeek-R1之Open R1实战】系列8:混合精度训练、DeepSpeed、vLLM和LightEval介绍

这里写目录标题 1 混合精度训练1.1 FP16和FP321.2 优点1.3 存在的问题1.4 解决办法 2 DeepSpeed3 vLLM3.1 存在的问题3.2 解决方法3.2.1 PagedAttention3.2.2 KV Cache Manager3.2.3 其他解码场景 3.3 结论 4 LightEval4.1 主要功能4.2 使用方法4.3 应用场景 本文继续深入了解O…

使用 FFmpeg 剪辑视频指南

FFmpeg 是一个功能强大的多媒体处理工具&#xff0c;可以进行视频和音频的剪辑、合并、转码等操作。本文将详细介绍如何使用 FFmpeg 进行视频剪辑&#xff0c;并通过实例帮助你快速掌握剪辑技巧。我们会从最基础的剪切功能讲起&#xff0c;再延伸到一些高级操作&#xff0c;如指…

【分布式理论15】分布式调度1:分布式资源调度的由来与过程

文章目录 一、操作系统的资源调度&#xff1a;从单核到多核二、 分布式系统的资源调度&#xff1a;从单台服务器到集群三、 固定资源映射四、 动态资源分配&#xff1a;灵活的任务-资源匹配五、 资源调度过程&#xff1a;从申请到执行 本文主要讨论主题&#xff1a; 从操作系统…

【Linux C/C++开发】Linux系统轻量级的队列缓存mqueue

前言 开发设计时&#xff0c;通常会对业务流程进行模块化&#xff0c;有些流程之间&#xff0c;不要求同步&#xff0c;但又需要传递信息时&#xff0c;如果存储到数据库&#xff0c;效率降低很多&#xff0c;如果是存放在内存是最好的。此时可以选择系统的IPC&#xff08;进程…

Vue 实现通过URL浏览器本地下载 PDF 和 图片

1、代码实现如下&#xff1a; 根据自己场景判断 PDF 和 图片&#xff0c;下载功能可按下面代码逻辑执行 const downloadFile async (item: any) > {try {let blobUrl: any;// PDF本地下载if (item.format pdf) {const response await fetch(item.url); // URL传递进入i…

计算机网络基础杂谈(局域网、ip、子网掩码、网关、DNS)

目录 1. 简单局域网的构成 2. IP 地址 3. 子网掩码 4. IP地址详解自定义IP 5. IP 地址详解 6. 网关 7. DNS 域名解析 8. ping 1. 简单局域网的构成 交换机是组建局域网最重要的设备&#xff0c;换句话说&#xff0c;没有交换机就没法搭建局域网 交换机不能让局域网连…

Thor: 统一AI模型网关的革新之选

项目价值 Thor(雷神托尔)作为一个强大的AI模型管理网关&#xff0c;解决了当前AI领域一个关键痛点&#xff1a;不同AI服务商的API格式各异&#xff0c;集成成本高。Thor通过将各种AI模型的独特格式统一转换为OpenAI格式&#xff0c;显著降低了开发者的使用门槛和维护成本。 核…

25年2月通信基础知识补充:多普勒频移与多普勒扩展、3GPP TDL信道模型

看文献过程中不断发现有太多不懂的基础知识&#xff0c;故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关&#xff0c;故记录不会很深入请见谅。 【通信基础知识补充7】25年2月通信基础知识补充1 一、多普勒频移与多普勒扩展傻傻分不…

【Python】Python入门——笔记合集

哈哈 00、环境搭建 学习Python&#xff0c;首先需要搭建一个本地开发环境&#xff0c;或是使用线上开发环境&#xff08;各类练习网站&#xff09;&#xff0c;这篇博客里主要记录了本地开发环境的配置方法。内容包括python解释器的安装以及pycharm的安装、汉化等。 博客地…

为什么mvcc中?m_ids 列表并不等同于 min_trx_id 和 max_trx_id 之间的所有事务 ID

首先我们要明确 m_ids 表示创建 ReadView 时&#xff0c;系统中所有活跃&#xff08;未提交&#xff09;事务的事务 ID 列表。 仅包含当前未提交的事务&#xff0c;与事务 ID 的数值范围无关。 min_trx_id 是 m_ids 中的最小值。若 m_ids 为空&#xff0c;则 min_trx_id 等于…

使用 Spark NLP 实现中文实体抽取与关系提取

在自然语言处理(NLP)领域,实体抽取和关系提取是两个重要的任务。实体抽取用于从文本中识别出具有特定意义的实体(如人名、地名、组织名等),而关系提取则用于识别实体之间的关系。本文将通过一个基于 Apache Spark 和 Spark NLP 的示例,展示如何实现中文文本的实体抽取和…

FPGA开发要学些什么?如何快速入门?

随着FPGA行业的不断发展&#xff0c;政策的加持和投入的研发&#xff0c;近两年FPGA行业的薪资也是水涨船高&#xff0c;一些人转行后拿到了薪资30W&#xff0c;甚至有一些能力强的人可以拿到60W&#xff0c;看到这里想必不少人表示很心动&#xff0c;但又不知道怎么转&#xf…