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
您可以使用以下简单命令维护持久性存储。
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服务器的更多指南。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx