首页 资讯频道 互联频道 智能频道 网络 数据频道 安全频道 服务器频道 存储频道

适用于 Linux 管理员的 25 个 Nginx 命令

2020-04-20 15:30:10 来源 : Linux公社

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

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

适用于Linux管理员的Nginx命令

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

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

开发人员和管理员必须掌握的25个Nginx命令(中)

17. 找到Nginx

PIDPID或进程ID是唯一的数字,用于区分Linux和类Unix系统上的进程。我们可以使用适当的PID将各种信号发送到Nginx服务器。可以使用以下命令之一找到此PID。

[[email protected]~/www.linuxidc.com]$psaux|grep[n]ginx

root38340.00.01177402188?Ss05:010:00nginx:masterprocess/usr/sbin/nginx

nginx38350.00.21487727704?S05:010:00nginx:workerprocess

[[email protected]~/www.linuxidc.com]$pgrepnginx

3834

3835

[[email protected]~/www.linuxidc.com]$cat/run/nginx.pid

3834

因此,我们可以将pgrep或vanilla grep命令与ps结合使用。

18. 查找日志文件

日志文件包含许多对系统管理员和开发人员而言有价值的信息。Nginx有两个默认的日志文件,由access.log和error.log文档组成。这些位于/var/log,可以使用以下命令查看。

[[email protected]/home/linuxidc/www.linuxidc.com]$ls/var/log/nginx/*.log

/var/log/nginx/access.log/var/log/nginx/error.log

现在您应该看到上面提到的那些日志文件。顾名思义,access.log包含有关您的网站访问者的信息,而error.log包含有关错误配置的警告/详细信息。但是,您需要先从Nginx配置文件中启用这两个日志,然后才能使用它们。

19. 设置虚拟主机

虚拟主机允许服务器管理员在一台服务器计算机上运行多个网站。这通常很有用,因为您可以共享您的计算过程以同时运行多个站点。但是,术语虚拟主机通常与Apache服务器关联。在Nginx世界中,它们被称为“ 服务器块 ”。

[[email protected]~/www.linuxidc.com]$sudoln-s/etc/nginx/sites-available/linuxidc.com/etc/nginx/sites-enabled/linuxidc.com

您可以使用此简单的符号链接轻松地在Nginx服务器上启用虚拟主机。如果要禁用虚拟主机,只需删除符号链接。

20. 查看编译的Nginx模块

正如您在以前的Nginx命令中看到的那样,在安装守护程序时,还会安装一些基本模块。我们可以使用以下命令轻松查看这些Nginx模块。

[[email protected]~/www.linuxidc.com]$sudo2>&1nginx-V|tr---'\n'|grep_module

该命令利用了几个Linux命令行工具,并过滤掉了不相关的信息以仅显示模块。由于Nginx有很多模块,因此该命令对于检查为服务器编译了哪些模块很有用。

21. 启用/禁用Nginx服务

启用Nginx服务可以使服务器在启动期间自动启动。这对于专用服务器至关重要,因为否则,用户请求可能会中断。我们可以使用以下命令轻松地使Nginx自动启动。

[[email protected]~/www.linuxidc.com]$sudoservicenginxenable#SystemVInit

[[email protected]~/www.linuxidc.com]$sudosystemctlenablenginx#基于systemd系统

基于systemd系统这些简单但有效的命令将确保尽可能减少服务器停机时间。您也可以根据需要禁用自动启动。只需使用以下命令之一。

[[email protected]~/www.linuxidc.com]$sudoupdate-rc.d-fnginxdisable

[[email protected]~/www.linuxidc.com]$sudosystemctldisablenginx

22、即时升级Nginx

Nginx允许管理员即时升级二进制文件和/或配置文件。这意味着您的客户端请求不会由于服务器升级而中断。为此,首先,我们需要找到主Nginx进程的PID。我们可以使用已经演示过的简单命令来实现。

[[email protected]~/www.linuxidc.com]$cat/run/nginx.pid

新的Nginx二进制文件应该已经准备就绪。通过以下命令生成一组新的Nginx主/工作进程,这些进程使用新的二进制文件。

[[email protected]~/www.linuxidc.com]$sudokill-sUSR2`cat/run/nginx.pid`

现在,使用以下命令杀死第一个主进程使用的辅助进程。

[[email protected]~/www.linuxidc.com]$sudokill-sWINCH`cat/run/nginx.pid.oldbin`

通过杀死旧的主进程来跟踪它。

[[email protected]~/www.linuxidc.com]$sudokill-sQUIT`cat/run/nginx.pid.oldbin`

23. 在Chroot Jail中设置Nginx

Nginx服务器的Chroot Jail将在可能发生入侵的情况下提供额外的安全保护。管理员经常使用这种技术来确保其服务器在Linux文件系统的一小部分中是隔离的和安全的。使用以下命令在Chroot Jail中设置Nginx服务器。

#D=/nginx

#mkdir-p$D

#mkdir-p$D/etc

#mkdir-p$D/dev

#mkdir-p$D/var

#mkdir-p$D/usr

#mkdir-p$D/usr/local/nginx

#mkdir-p$D/tmp

#chmod1777$D/tmp

#mkdir-p$D/var/tmp

#chmod1777$D/var/tmp

#mkdir-p$D/lib64

#ls-l/dev/{null,random,urandom}

#/bin/cp-farv/usr/local/nginx/*$D/usr/local/nginx

您需要以超级用户身份运行它们。现在,使用以下命令找出共享库。

#ldd/usr/local/nginx/sbin/nginx

如下所示,一一复制所有库。

#cp/lib64/libpcre.so.0$D/lib64

您还需要复制/ etc和其他一些目录。

#cp-fv/etc/{group,prelink.cache,services,adjtime,shells,gshadow,shadow,hosts.deny,localtime,nsswitch.conf,nscd.conf,prelink.conf,protocols,hosts,passwd,ld.so.cache,ld.so.conf,resolv.conf,host.conf}$D/etc

#cp-avr/etc/{ld.so.conf.d,prelink.conf.d}$D/etc

您的Chroot Jail现在已准备好接受Nginx。只需杀死旧服务,然后使用下一条命令启动新服务即可。

#/usr/sbin/chroot/nginx/usr/local/nginx/sbin/nginx-t

24. 在Docker中运行Nginx

Docker容器由于其灵活性和强大的性能而变得非常流行。您可以从Docker容器中轻松创建和运行Nginx Web服务器。下一条命令将提取官方Nginx映像,并使用默认配置创建服务器实例。

[[email protected]/home/linuxidc/www.linuxidc.com]$dockerrun--namenginx-server-P-dnginx

Unabletofindimage'nginx:latest'locally

latest:Pullingfromlibrary/nginx

123275d6e508:Pullcomplete

6cd6a943ce27:Pullcomplete

a50b5ac4a7fb:Pullcomplete

Digest:sha256:d81f010955749350ef31a119fb94b180fde8b2f157da351ff5667ae037968b28

Status:Downloadednewerimagefornginx:latest

b235541342e380c9e57aad547d52292da89e2c26d9cf6a1548d568a4073136ed

您可以使用以下简单命令维护持久性存储。

sudodockerrun--namenginx-server-v/var/www:/usr/share/nginx/html:ro\

-v/var/nginx/conf:/etc/nginx:ro-P-dnginx

25. 在LXD内运行Nginx

LXD被誉为下一代Linux容器,并提供了一系列惊人的功能。您还可以通过LXD容器使用Nginx。看一下以下用于LXD的Nginx命令。

$sudolxclaunchubuntu:18.04nginx-server

$sudolxcexecnginx-server--sudo--userubuntu--login

$sudoaptupdate

$sudoaptinstall-ynginx

$sudosystemctlreloadnginx

首先,我们创建了一个名为nginx-server的容器,然后在该容器中启动了一个shell。然后,我们更新了软件包列表,并在该容器中安装了Nginx Web服务器。最后一条命令只是重新加载服务器。

总结

Nginx提供了许多令人惊讶的功能,我们不仅介绍了基本的命令,而且还介绍了一些高级的、更强大的命令行技巧。您一旦你习惯了这些命令,那么你对Nginx技能的掌握就更上一层楼。

最近更新