Nginx命令汇总 | 建议收藏

254 阅读5分钟

前言

我一直觉得自己前端技术掌握的还不错,可没想到,前几天被后端的同事吐槽了一句:"你连 Nginx 命令都不会?"好吧,你算是把我给刺激到了!不能忍!学它!

不过想想也是,Nginx 这东西虽然在后端用得多,但咱前端也不能两眼一抹黑啊,所以经过我两天的学习,也算是知道 Nginx 有什么用了,下面我就来分享一下我学的一些内容。注:想看常用命令汇总的直接拉到文章最底部。

Nginx是什么?

Nginx 是一个非常高性能的 Web 服务器反向代理服务器

  • Web服务器就是存放前端静态资源的服务器,也就是存放每次项目打包后的dist文件的地方。
  • 反向代理服务器是指位于客户端和后端服务器之间的服务器

明白了这两个服务器的概念,我们再来详细的说一下它为什么高效?首先我们从它

作为 Web 服务器的层面来讲:

  • Nginx 在处理静态资源时的速度和效率非常高,因为它采用了异步非阻塞的事件驱动模型,和咱们前端中理解的异步一个意思,不会在处理一个请求时阻塞等待其他操作完成,能够同时处理多个并发请求。在内存方面,Nginx 减少了内存碎片的产生,即便处理大量静态文件请求,也不会因内存问题导致性能下降,它还使用了轻量级的进程来处理请求,每个进程能够处理多个连接,相比传统的多线程模型,减少了线程切换和同步的开销,从而提高了系统的并发处理能力。此外,Nginx 支持对静态文件进行缓存,当客户端请求相同的静态资源时,可以直接从缓存中返回,无需再次从磁盘读取文件,这一点和我们浏览器机制是差不多的。

  • 支持 HTTP 和 HTTPS 协议,可以提供安全的网页来打开前端项目。

作为反向代理服务器的层面来讲:

  • 它能接收来自客户端的请求,并将这些请求转发到后端的多个服务器上,这有助于实现负载均衡,将请求均匀地分配到不同的后端服务器,避免单个服务器过载。

  • 支持处理 SSL 加密,大大减轻后端服务器的加密和解密负担。

  • 可以隐藏后端服务器,增强后端服务器的安全性,防止直接暴露后端服务器的信息。

前端可以用Nginx做什么?

  1. 静态资源服务: 将前端的静态资源通过 Nginx 进行高效的分发和缓存,提高资源加载速度。

  2. 解决跨域问题: 通过配置 Nginx 的反向代理,可以规避浏览器的同源策略限制,解决跨域问题。

  3. 负载均衡: 在前端应用部署多个实例时,利用 Nginx 实现请求的负载均衡,确保各个实例的负载相对均衡。

  4. 缓存控制: 可以更精细地控制前端资源的缓存策略,如设置缓存的有效期、根据文件类型进行不同的缓存处理等。

  5. 配置 URL 重写: 根据业务需求和路由模式,对前端的 URL 进行重写和跳转。

  6. 配合开发环境: 在开发过程中,配置 Nginx 来模拟不同的环境和场景,方便前端的开发和调试。

常用的 Nginx 命令汇总

命令释义
nginx -s reload重新加载 Nginx 配置文件,使配置生效,而无需中断服务
nginx -s stop快速停止 Nginx 服务
nginx -t检查 Nginx 配置文件的语法是否正确
nginx -V显示 Nginx 的版本信息以及编译时的配置参数
nginx -v仅显示 Nginx 的版本信息
nginx -c filename使用指定的配置文件启动 Nginx 服务,而不是默认的配置文件
nginx -p prefix设置 Nginx 的工作目录前缀
nginx -g directives在命令行中设置全局配置指令
nginx -h显示 Nginx 命令的帮助信息
nginx -u username以指定的用户身份运行 Nginx 工作进程
nginx -e filename将错误日志输出到指定的文件
nginx -q在测试配置时,抑制非错误消息的显示
nginx -T打印包括主配置和所有包含文件的配置内容
nginx -k start/stop/reopen/reload用于控制 Nginx 服务的启动、停止、重新打开和重新加载
nginx -l显示 Nginx 模块信息
nginx -M显示已加载的模块及其相关信息
nginx -L显示 Nginx 支持的指令列表
nginx -o在测试配置时,只显示错误信息
nginx --builddir=dir指定构建目录
nginx -S signal向主进程发送指定的信号,例如 nginx -S quit 用于优雅地停止服务
nginx --with-http_ssl_module在编译时指定包含 HTTP SSL 模块
nginx --without-http_gzip_module在编译时排除 HTTP Gzip 模块
nginx --with-http_realip_module在编译时包含获取真实客户端 IP 的模块
nginx --with-http_stub_status_module启用状态信息统计模块
nginx --with-http_auth_request_module包含 HTTP 授权请求模块
nginx --with-http_v2_module启用 HTTP/2 模块
nginx --with-mail_ssl_module在处理邮件时启用 SSL 模块