阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

169次阅读
没有评论

共计 4906 个字符,预计需要花费 13 分钟才能阅读完成。

Nginx 是 Linux 和 BSD 用户中最受欢迎的 web 服务器之一,因为它具有丰富的功能指令集和优越的灵活性。如果您是一名 Web 开发人员,那么您可能正在使用 Nginx 或 Apache 服务器。因此,深入了解 Nginx 如何从命令行工作是很重要的。幸运的是,您可以通过掌握一些 Nginx 命令来提高 DevOps 技能。我们的编辑为您选择了这些经常使用的命令,并为启动 Linux 管理员提供了全面的讨论。那就请你阅读本文以了解关于这些命令的更多信息。

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

适用于 Linux 管理员的 Nginx 命令

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

  • 开发人员和管理员必须掌握的 25 个 Nginx 命令(上)见 https://www.linuxidc.com/Linux/2020-04/162922.htm
  • 开发人员和管理员必须掌握的 25 个 Nginx 命令(中)见  https://www.linuxidc.com/Linux/2020-04/162935.htm

17、找到 Nginx PID

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

[linuxidc@localhost ~/www.linuxidc.com]$ps aux | grep [n]ginx
root      3834  0.0  0.0 117740  2188 ?        Ss  05:01  0:00 nginx: master process /usr/sbin/nginx
nginx      3835  0.0  0.2 148772  7704 ?        S    05:01  0:00 nginx: worker process
[linuxidc@localhost ~/www.linuxidc.com]$pgrep nginx
3834
3835
[linuxidc@localhost ~/www.linuxidc.com]$cat /run/nginx.pid
3834

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

因此,我们可以将 pgrep 或 vanilla grep 命令与 ps 结合使用。如果您不了解“grep”的工作原理,请不要担心。我们已经发布了有关 Linux grep 命令指南。《理解 Linux 中的 pgrep 命令  https://www.linuxidc.com/Linux/2020-02/162409.htm》

18、查找日志文件

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

[root@localhost /home/linuxidc/www.linuxidc.com]$ls /var/log/nginx/*.log
/var/log/nginx/access.log  /var/log/nginx/error.log

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

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

19、设置虚拟主机

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

[linuxidc@localhost ~/www.linuxidc.com]$ sudo ln -s /etc/nginx/sites-available/linuxidc.com /etc/nginx/sites-enabled/linuxidc.com

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

20、查看编译的 Nginx 模块

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo 2>&1 nginx -V | tr — – ‘\n’ | grep _module

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

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

21、启用 / 禁用 Nginx 服务

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo service nginx enable    # System V Init
[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl enable nginx  # 基于 systemd 系统

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo update-rc.d -f nginx disable
[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl disable nginx

22、即时升级 Nginx

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

[linuxidc@localhost ~/www.linuxidc.com]$cat /run/nginx.pid

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo kill -s USR2 `cat /run/nginx.pid`

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo kill -s WINCH `cat /run/nginx.pid.oldbin`

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo kill -s QUIT `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
# chmod 1777 $D/tmp
# mkdir -p $D/var/tmp
# chmod 1777 $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 映像,并使用默认配置创建服务器实例。

[root@localhost /home/linuxidc/www.linuxidc.com]$docker run –name nginx-server -P -d nginx
Unable to find image ‘nginx:latest’ locally
latest: Pulling from library/nginx
123275d6e508: Pull complete
6cd6a943ce27: Pull complete
a50b5ac4a7fb: Pull complete
Digest: sha256:d81f010955749350ef31a119fb94b180fde8b2f157da351ff5667ae037968b28
Status: Downloaded newer image for nginx:latest
b235541342e380c9e57aad547d52292da89e2c26d9cf6a1548d568a4073136ed

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

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

sudo docker run –name nginx-server -v /var/www:/usr/share/nginx/html:ro \

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

25、在 LXD 内运行 Nginx

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

$ sudo lxc launch Ubuntu:18.04 nginx-server
$ sudo lxc exec nginx-server — sudo –user ubuntu –login
$ sudo apt update
$ sudo apt install -y nginx
$ sudo systemctl reload nginx

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

总结

Nginx 提供了许多令人惊讶的功能,新用户常常被其强大的功能所淹没。幸运的是,如果你只知道一些基本的 Nginx 命令,你也可以获得极大的信心。这就是为什么我们冒昧地向你们展示这些令人敬畏的命令。我们不仅介绍了基本的命令,而且还介绍了一些高级的、更强大的命令行技巧。希望您一旦你习惯了这些命令,那么你对 Nginx 技能的掌握就更上一层楼。请在下面的评论部分告诉我们您的想法,并继续阅读 Linux 公社的其他文章以获取有关 Linux 服务器的更多指南。

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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4906字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中