火爆了!Nginx常用命令大全

火爆了!Nginx常用命令大全

公众原文-我写了一份流量主教程,欢迎大家领取;Nginx是一款轻量级的Web服务器、反向代理服务器和负载均衡器,由俄罗斯程序员Igor Sysoev开发。Nginx的设计目标是高性能、高并发、高可靠、低资源消耗,可以作为Web服务器、反向代理服务器和负载均衡器使用。在日常运维和开发中,熟练掌握Nginx的常用命令非常关键。为了方便记忆我将 Nginx 常用命令分为服务控制、配置检查、信息查看以及Systemd 系统命令四大类。
一、服务控制命令

  1. 启动 Nginx
nginx

直接输入 nginx 即可启动服务器。启动后默认在后台运行。
2. 停止 Nginx
停止分为快速停止和优雅停止两种:
快速停止:

nginx-sstop

立即断开所有连接,停止服务。相当于拔电源,不管当前是否有正在处理的请求。
优雅停止:

nginx-squit

优雅地停止服务。Nginx 会拒绝接收新的请求,但会等当前正在处理的请求全部完成后再关闭进程。
3. 重载配置文件

nginx-sreload

当修改了 nginx.conf 配置文件后,不需要重启 Nginx,使用该命令就可以让新配置生效。其原理是主进程会重新读取配置,启动新的 Worker 进程,并通知旧的 Worker 进程在处理完当前请求后优雅退出。
4. 重新打开日志文件

nginx-sreopen

此命令常用于日志轮转,当 Nginx 的日志文件被移动或重命名后,Nginx 仍然会向旧的文件描述符写日志。使用此命令可以让 Nginx 重新打开日志文件,生成新的文件描述符。
二、配置检查与指定命令

  1. 检查配置文件语法
nginx-t

在重启或重载配置之前,务必使用此命令检查配置文件是否有语法错误。如果配置有误,Nginx 会报错并指出具体行号,防止因配置错误导致服务宕机。
2. 检查并打印配置

nginx-T

不仅检查语法,还会将最终生效的完整配置文件内容打印到终端。在排查配置包含关系时非常有用。
3. 指定配置文件位置

nginx-c/path/to/custom/nginx.conf

默认情况下,Nginx 会读取编译时指定的路径(通常是 /etc/nginx/nginx.conf)。如果想用一份自定义的配置文件启动 Nginx,可以使用 -c 指定。
4. 指定运行前缀路径

nginx-p/path/to/prefix/

设置 Nginx 的前缀路径,Nginx 会基于此路径来定位配置文件、日志文件等相对路径的资源。
三、信息查看命令

  1. 查看 Nginx 版本
nginx-v
  1. 查看 Nginx 编译参数
nginx-V
  1. 查看帮助信息
nginx-h

或者

nginx -?

打印 Nginx 命令行的帮助信息,忘了命令时可以随时查看。
四、通过 Systemd 控制的命令

  1. 静态文件处理配置后重载
    Nginx 可直接返回静态文件(HTML/CSS/JS),减轻后端负担。
# 修改配置:指定网站根目录location /{root /usr/share/nginx/html;index index.html;}

操作步骤:

1. 修改配置后检查 nginx-t# 2. 重载配置nginx-sreload# 3. 验证静态文件访问curl-Ihttp://localhost/
  1. 反向代理配置验证
    反向代理可隐藏后端真实 IP,提高安全性。
# 反向代理配置location /api/{proxy_pass http://backend_servers;proxy_set_header Host$host;proxy_set_header X-Real-IP$remote_addr;}

验证命令:

# 检查配置nginx-t# 重载nginx-sreload# 测试代理是否生效curl-vhttp://localhost/api/
  1. 负载均衡配置调整
    Nginx 可将请求分摊到多台后端服务器。
# 负载均衡配置upstream backend_servers{server192.168.1.10:8080;server192.168.1.11:8080;server192.168.1.12:8080;}

动态调整后端服务器:

# 1. 编辑配置,添加/移除后端服务器vim/etc/nginx/conf.d/upstream.conf# 2. 检查语法nginx-t# 3. 重载(零停机更新后端列表)nginx-sreload
  1. SSL/TLS 配置启用
    SSL/TLS 支持可提高通信安全性。
# SSL 配置server{listen443ssl;server_name example.com;ssl_certificate /etc/nginx/ssl/example.com.crt;ssl_certificate_key /etc/nginx/ssl/example.com.key;}

启用步骤:

# 1. 确认 Nginx 编译了 SSL 模块nginx-V|grepssl# 2. 配置 SSL 后检查nginx-t# 3. 重载nginx-sreload# 4. 验证 HTTPScurl-vhttps://example.com/

五、性能优化的命令操作

  1. Gzip 压缩验证
    启用 gzip 减小传输大小。
# gzip 配置gzipon;gzip_types text/plain text/css application/json;gzip_min_length1024;

验证 gzip 是否生效:

# 检查配置nginx-t&&nginx-sreload# 测试压缩效果curl-H"Accept-Encoding: gzip"-Ihttp://localhost/style.css# 应看到 Content-Encoding: gzip
  1. HTTP/2 协议配置
    推荐启用 HTTP/2 提升传输效率。
# HTTP/2 配置server{listen443ssl http2;# ... 其他 SSL 配置}

验证 HTTP/2:

# 确认支持 HTTP/2 模块nginx-V|grephttp_v2# 配置后检查并重载nginx-t&&nginx-sreload# 使用 curl 测试(需支持 HTTP/2)curl-I--http2https://example.com/
  1. 缓存配置生效
    缓存可减少后端负担。
# 缓存配置proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10m;location /{proxy_cache my_cache;proxy_pass http://backend;}

操作命令:

# 1. 创建缓存目录mkdir-p/var/cache/nginxchownnginx:nginx /var/cache/nginx# 2. 检查并重载配置nginx-t&&nginx-sreload# 3. 监控缓存使用情况ls-lh/var/cache/nginx/
  1. 文件描述符限制调整
    建议调整系统文件描述符限制以支持高并发。
    查看当前限制:
ulimit-n

临时调整:

ulimit-n65535

永久调整(需重启):

# 编辑 /etc/security/limits.confecho"* soft nofile 65535">>/etc/security/limits.confecho"* hard nofile 65535">>/etc/security/limits.conf# 或编辑 /etc/sysctl.confecho"fs.file-max = 2097152">>/etc/sysctl.confsysctl-p调整后重启 Nginx: systemctl restart nginx

六、总结

Nginx的内容就分享到这里,希望大家喜欢!