开发人员和管理员应该掌握的25个Nginx命令(上)

系统 Linux
如果您是一名Web开发人员,那么您可能正在使用Nginx或Apache服务器。因此,深入了解Nginx如何从命令行工作是很重要的。

Nginx是Linux和BSD用户中最受欢迎的web服务器之一,因为它具有丰富的功能指令集和优越的灵活性。如果您是一名Web开发人员,那么您可能正在使用Nginx或Apache服务器。因此,深入了解Nginx如何从命令行工作是很重要的。

幸运的是,您可以通过掌握一些Nginx命令来提高DevOps技能。我们的编辑为您选择了这些经常使用的命令,并为启动Linux管理员提供了全面的讨论。那就请你阅读本文以了解关于这些命令的更多信息。

适用于Linux管理员的Nginx命令

与许多Web服务器不同,Nginx仅使用配置文件处理服务器配置。因此,您可以利用的命令行参数很少。这很有用,因为管理员可以快速找到他们要找的命令。下面是一些广泛使用的Nginx命令,您现在就可以使用它们。

在Linux中安装Nginx Web 服务器

Nginx提供了几种用于不同版本Linux的安装软件包。可以使用软件包管理器直接安装Nginx,如下所示。

  1. $ sudo apt install nginx                                # Ubuntu 
  2. $ sudo dnf install nginx                                # Fedora 
  3. $ sudo yum install epel-release && yum install nginx    # RHEL 或 CentOS 

也可以从源代码编译Nginx。

1. 启动Nginx服务器

如下所示,启动Nginx Web服务器非常容易。只需使用以下命令之一来调用标准Web服务器。

  1. sudo service nginx start 

发出此命令时,Nginx正在由System V初始化脚本启动。如果您是从基于系统的系统(如Ubuntu Linux 16.04LTS及更高版本)运行Nginx,则需要使用以下命令。

  1. sudo systemctl start nginx 

您应该得到一个响应,显示服务器是否成功启动。另一个简单但有效的方法是使用二进制路径直接调用Nginx,如下所示。

  1. sudo /usr/bin/nginx 

2. 停止Nginx服务器

您也可以使用上面显示的类似方法停止正在运行的Nginx服务器。但是,请记住,当停止正在运行的Nginx服务器时,与之关联的所有系统进程都会被杀死。即使您有活动的连接,它也会终止。

  1. sudo service nginx stop 

该命令将在使用System V初始化脚本的系统中停止Nginx进程。对于基于systemd的计算机,可以使用以下命令。

  1. sudo systemctl stop nginx 

但是,在繁忙的服务器中,这些命令仍会花费大量时间。下一条命令演示如何以更快的方式停止Nginx服务。

  1. sudo killall -9 nginx 

3. 退出Nginx服务器

退出Nginx服务器类似于停止服务器-唯一的区别是。Nginx守护程序采用了一种优雅的方法来退出,因为它不会中断任何活动的连接。因此,您的客户请求将在关闭之前按预期的方式提供。

  1. sudo service nginx quit 

使用此命令从Linux shell退出Nginx服务器。运行基于Systemd的计算机的用户可以利用下一个命令来完成此工作。

  1. sudo systemctl quit nginx 

您也可以使用以下Nginx命令之一退出正在运行的服务器。

  1. sudo nginx -s quit 
  2. sudo kill -QUIT $( cat /usr/local/nginx/logs/nginx.pid ) 

4. 重新启动Nginx服务器

重新启动服务器时,Nginx进程只是停止然后重新启动。您可以使用以下命令之一从命令行重新启动Nginx守护程序。

  1. sudo service nginx restart 

此命令将使用System V初始化脚本重新启动Nginx服务器。您可以在新的Ubuntu版本(例如较新的Ubuntu)等基于系统的系统中使用systemctl进行此操作。

  1. sudo systemctl restart nginx 

您也可以用其他方式执行此操作,如以下示例所示。

  1. sudo /etc/init.d/nginx restart 

如果从源代码编译了Nginx,则可以使用下一个命令。

  1. sudo /usr/local/nginx/sbin/nginx -s restart 

5. 重新加载Nginx服务器

重新加载Nginx服务器与重新启动服务器略有不同。重新加载服务器时,Nginx将以正常方式关闭。这意味着Nginx守护程序将首先终止,然后解析配置文件以进行尝试的更改,并在不中断操作的情况下启动新的工作进程。

  1. sudo service nginx reload 
  2. sudo systemctl status nginx 

第一个命令使用System V初始化脚本,而最后一个命令用于基于systemd的Linux发行版。您也可以调用以下脚本来完成此工作。

  1. sudo /etc/init.d/nginx reload 

如果您已从源代码编译了Nginx,则应使用下一个命令。

  1. sudo /usr/local/nginx/sbin/nginx -s reload 

下一个命令是正常重启Nginx服务器的另一种便捷方法。

  1. sudo nginx -s reload 

6. 检查Nginx状态

有时,您可能需要先查看Nginx服务器的当前状态,然后再对其进行任何操作。使用以下命令之一可以非常快速地完成此操作。切记对您的命令进行sudo或切换到root用户。

  1. sudo service nginx status 

如先前的一些命令所示,此命令通过初始化System V初始化脚本来起作用。您可以对使用systemd的系统使用next命令。

  1. systemctl status nginx 

执行此操作的另一种方法是直接使用Nginx init.d脚本,如以下命令所示。

  1. sudo /etc/init.d/nginx status 

如果Nginx是从源代码编译的,则您需要执行下一个命令。

  1. sudo /usr/local/nginx/sbin/nginx -s status 

7. 检查Nginx配置

由于Nginx的自定义功能范围很广,因此网络管理员经常需要调整配置文件以添加/解锁新功能。但是,您应该始终测试配置文件中是否存在潜在错误。否则,恶意用户可能会利用服务器配置中的错误。

  1. sudo nginx -t 

这是一个简单的命令,可以为您完成这项工作。运行此命令时,基本上是在告诉Nginx检查配置文件中的语法错误,并避免运行服务器。您可以使用以下命令在终端控制台上转储配置测试的结果。

  1. sudo nginx -T 

您也可以使用以下Nginx命令之一来测试Nginx服务器的配置。

  1. sudo service nginx configtest  # System V Init 
  2. sudo systemctl config nginx    # systemd-based 

8. 送信号给Nginx

管理员可以向Nginx守护程序发送各种有用的信号。您将需要使用-s标志向Nginx发送信号,然后发送实际信号。当我们使用它退出并重新加载Nginx服务器时,我们已经看到了运行中的信号。在这里,我们按顺序指定它们。

  1. $ sudo nginx -s stop    # 停止正在运行的Nginx服务器 
  2. $ sudo nginx -s quit    # 退出Nginx服务器 
  3. $ sudo nginx -s reload  # 正常重启Nginx 
  4. $ sudo nginx -s reopen  # 重新打开服务器日志文件 

但是,您的Nginx版本至少应为0.7.53或更高。否则,您将无法向Nginx进程发送信号。

责任编辑:赵宁宁 来源: Linux公社
相关推荐

2020-04-20 08:08:33

Nginx命令开发Linux

2020-04-20 09:42:31

Nginx命令开发Linux

2020-05-07 07:47:12

git命令Linux开发

2023-04-07 16:11:56

前端开发

2017-10-11 13:20:56

Linux命令工程师

2024-06-04 14:31:16

2020-10-13 18:20:55

TCPHTTP网络协议

2011-07-10 15:18:11

开发

2009-09-10 14:18:03

PHP库

2020-01-27 16:28:57

开发命令远程服务器

2019-11-01 10:30:37

Reac测试工具开源

2023-10-08 13:59:56

Git开发

2023-02-26 18:43:05

SQL工具数据库

2022-07-04 08:00:00

Web开发人员编程习惯程序员

2020-10-13 08:41:58

Java开发框架

2011-03-21 16:38:29

数据库管理员开发人员

2019-11-25 14:09:34

控制台命令开发

2010-06-30 08:52:25

2019-11-07 09:42:39

JavaScript框架语言

2023-10-26 16:56:24

点赞
收藏

51CTO技术栈公众号