小工具知识网

当前位置: 首页 > 行业知识 > Nginx 的安装、启动和关闭

行业知识

Nginx 的安装、启动和关闭

2026-11-04 05:12:43 来源:互联网转载

文章目录

    • 一、背景说明
    • 二、Nginx 的安装
      • 2.1、依赖的安装
      • 2.2、Nginx 安装
      • 2.3、验证安装
      • 三、启动 Nginx
        • 3.1、普通启动
        • 3.2、如何判断nginx已启动
        • 3.3、通过配置启动
        • 3.4、设置开机启动
        • 四、关闭 Nginx
          • 4.1、优雅地关闭
          • 4.2、快速关闭
          • 4.3、只关闭主进程
          • 4.4、使用nginx关闭服务
          • 五、重启 Nginx
          • 六、问题
            • 6.1、Nginx 从哪里下载?
            • 6.2、如果没有rz如何安装?
            • 6.3、如果没有 make如何安装?
            • 6.4、zlib 从哪里下载?
            • 6.5、使用 rz命令上传 nginx 安装包为什么会报错?
            • 6.6、报错:fatal error: zlib.h: No such file or directory
            • 七、总结

              一、背景说明

              最近想自己开发一些小玩意,所以在腾讯云买了个云服务器,选择镜像时放弃了宝塔Linux面板,而是选择了 Ubuntu18 的镜像。

              现在想搭建自己的网站,选择了 Nginx 作为 Web服务器。那么如何在 Ubuntu18 系统中安装 Nginx 呢?所以就有了本文的诞生。


              二、Nginx 的安装

              2.1、依赖的安装

              Nngix 的依赖有:

              • gcc
              • openssl, openssl-devel
              • pcre,pcre-devel
              • zlib,zlib-devel

                依赖的安装命令:

                apt install gcc openssl pcre pcre-devel zlib zlib-devel;

                但是提示从pcre往后的包都找不到。有人说Ubuntu中没有这些包。

                依赖的安装命令2:

                # 如果是非root账户,需要使用sudo apt install命令apt install gcc openssl libpcre3 libpcre3-dev libssl-dev;

                 

                2.2、Nginx 安装

                1. 使用 rz 命令将 nginx 和 zlib 的安装包上传到服务器。
                # 打开上传文件选择框sudo rz -y;

                此时,文件默认上传到 home 目录。

                注:如果rz后出现乱码 =>  请戳这里

                1. 解压文件
                # 解压nginx安装包,会在home目录生成`nginx-1.20.2`目录sudo tar zxvf nginx-1.20.2.tar.gz;# 解压 zlib 安装包sudo tar zxvf zlib-1.2.11.tar.gz; 
                1. 执行配置
                # 进入nginx-1.20.2目录cd nginx-1.20.2/;# 执行配置文件# 执行完后,/usr/local/下还没有生成nginx目录./configure --prefix=/usr/local/nginx --with-zlib=../zlib-1.2.11/;

                这段命令的意思:

                • --prefix:指定nginx安装的目录
                • --with-zlib:指定从哪里读取zlib的源码(解压后的目录)
                  1. 安装nginx
                  # 仍在 ~/nginx-1.20.2/下make;# 生成了/usr/local/nginx目录# 需要root权限,否则上述目录无法创建sudo make install;

                   

                  2.3、验证安装

                  cd到/usr/local目录,如果nginx目录已经生成,则表示安装成功。如下图:

                   


                  三、启动 Nginx

                  有两种启动方式:

                  1. 普通启动
                  2. 通过配置启动

                  3.1、普通启动

                  进入Nginx的安装目录(即/usr/local/nginx),有一个sbin目录。

                  普通启动就是运行sbin目录下的nginx文件。

                  启动命令如下:

                  cd /usr/local/nginx/sbin;sudo ./nginx;# 或者cd /usr/local/nginx/sbin & sudo ./nginx;

                  3.2、如何判断nginx已启动

                  (1)再次启动nginx

                  如果nginx已经启动,则再次启动会报如下错误:

                  cd /usr/local/nginx/sbin & sudo ./nginx;[1] 7954nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] still could not bind()[1]+  Done                    cd /usr/local/nginx/sbin

                  (2)还可通过查看进程,判断nginx是否启动:

                  ps -ef|grep nginx;

                  nginx的进程信息如下:

                  (3)直接访问部署nginx的机器的ip地址

                   

                  3.3、通过配置启动

                  该启动方法的命令如下:

                  sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf;

                  3.4、设置开机启动

                  命令如下:

                  # 打开/etc/rc.d/rc.local文件vim /etc/rc.d/rc.local;

                  在文件末尾追加如下内容:

                  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 2>&1

                  重启系统,检查nginx是否随系统启动。

                   


                  四、关闭 Nginx

                  4.1、优雅地关闭

                  sudo kill -QUIT $主进程id;

                  优雅地关闭之所以称为优雅,是因为如果关闭时还有用户请求,会等所有的用户请求都处理完,才进行关闭。

                   

                  4.2、快速关闭

                  sudo kill -TERM $主进程id;# orsudo kill $主进程id;

                  注:kill 不加参数,也是快速关闭。

                   

                  4.3、只关闭主进程

                  sudo kill -9 $主进程id;

                  如:kill -9 7720

                  上图可以看出:通过这种方式关闭ngin的主进程,子进程还是存活的。

                  通过ps命令,可以获得主进程的id。

                   

                  4.4、使用nginx关闭服务

                  sudo /usr/local/nginx/sbin/nginx -s stop;

                   


                  五、重启 Nginx

                  使用下面的命令,可以对 Nginx 进行重启:

                  cd /usr/local/nginx/sbin/ && sudo ./nginx -s reload;

                  该命令会新建一个进程处理新的请求。同时通知老的进程,处理已经响应的请求,然后优雅地退出。

                   


                  六、问题

                  6.1、Nginx 从哪里下载?

                  答:进入 Nginx的下载页:

                  https://nginx.org/en/download.html

                  我选择的版本是:nginx-1.20.2 的Linux版本。

                   

                  6.2、如果没有rz如何安装?

                  答:我使用的云服务器是有这个命令的,如果自己的系统没有,可以通过下面的命令安装:

                  sudo apt install lrzsz;

                   

                  6.3、如果没有 make如何安装?

                  答:和上面的命令类似:

                  sudo apt install make;

                   

                  6.4、zlib 从哪里下载?

                  答:zlib的下载地址:

                  http://zlib.net/

                  我选的是tar.gz格式的文件:

                   

                  6.5、使用 rz命令上传 nginx 安装包为什么会报错?

                  答:上传文件后,会出现莫名的字符。报错信息如下:

                  rz -y## 结果输出rz: nginx-1.20.2.tar.gz removed.                     ubuntu@VM-(reverse-i-search)`': q$ZGÿZU͇^C k^CZ2¢荙Ǿvu٧ބ)5¨m3¶dev;ǢRӪƺ?͇Wվǟĕd|꾣Ĭ"ϲ¤ֶֶֶ $_¼WE'K@p.eD-bash: syntax error near unexpected token `('ubuntu@xxxx:~$ rzͣ ...

                  参考了下面网友的说法:

                  https://segmentfault.com/q/1010000004642603

                  得知:rz -y 命令的执行,需要root权限。

                  所以应当使用如下命令:

                  sudo rz -y;

                   

                  6.6、报错:fatal error: zlib.h: No such file or directory

                  详细报错信息:

                  src/http/modules/ngx_http_log_module.c:13:10: fatal error: zlib.h: No such file or directory #include           ^~~~~~~~

                  答:原因:zlib不在home目录,而是上传到 nginx-1.20.2/目录中了。

                   


                  七、总结

                    本文主要介绍了 Nginx 的安装、启动和关闭。之所以安装它,是打算使用其部署前端页面。

                    文章记录了整个 Nginx 的安装和启动过程。期间遇到一些问题,在问题节中对这些遇到的问题进行了记录,并给出了解决方法。

                   

                   

                   

                   

                   


上一篇:大象怎么拼读用英语?

下一篇:C++ 可变参数模板