Nginx 的安装、启动和关闭

打印 上一主题 下一主题

主题 647|帖子 647|积分 1941




一、背景说明

最近想自己开发一些小玩意,所以在腾讯云买了个云服务器,选择镜像时放弃了宝塔Linux面板,而是选择了 Ubuntu18 的镜像。
现在想搭建自己的网站,选择了 Nginx 作为 Web服务器。那么如何在 Ubuntu18 系统中安装 Nginx 呢?所以就有了本文的诞生。

二、Nginx 的安装

2.1、依赖的安装

Nngix 的依赖有:


  • gcc
  • openssl, openssl-devel
  • pcre,pcre-devel
  • zlib,zlib-devel
依赖的安装命令:
  1. apt install gcc openssl pcre pcre-devel zlib zlib-devel;
复制代码
但是提示从pcre往后的包都找不到。有人说Ubuntu中没有这些包。
依赖的安装命令2:
  1. # 如果是非root账户,需要使用sudo apt install命令
  2. apt install gcc openssl libpcre3 libpcre3-dev libssl-dev;
复制代码
 
2.2、Nginx 安装


  • 使用 rz 命令将 nginx 和 zlib 的安装包上传到服务器。
  1. # 打开上传文件选择框
  2. sudo rz -y;
复制代码
此时,文件默认上传到 home 目录。
注:如果rz后出现乱码 =>  请戳这里

  • 解压文件
  1. # 解压nginx安装包,会在home目录生成`nginx-1.20.2`目录
  2. sudo tar zxvf nginx-1.20.2.tar.gz;
  3. # 解压 zlib 安装包
  4. sudo tar zxvf zlib-1.2.11.tar.gz;
复制代码

  • 执行配置
  1. # 进入nginx-1.20.2目录
  2. cd nginx-1.20.2/;
  3. # 执行配置文件
  4. # 执行完后,/usr/local/下还没有生成nginx目录
  5. ./configure --prefix=/usr/local/nginx --with-zlib=../zlib-1.2.11/;
复制代码
这段命令的意思:


  • --prefix:指定nginx安装的目录
  • --with-zlib:指定从哪里读取zlib的源码(解压后的目录)


  • 安装nginx
  1. # 仍在 ~/nginx-1.20.2/下
  2. make;
  3. # 生成了/usr/local/nginx目录
  4. # 需要root权限,否则上述目录无法创建
  5. sudo make install;
复制代码
 
2.3、验证安装

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

 

三、启动 Nginx

有两种启动方式:

  • 普通启动
  • 通过配置启动
3.1、普通启动

进入Nginx的安装目录(即/usr/local/nginx),有一个sbin目录。
普通启动就是运行sbin目录下的nginx文件。

启动命令如下
  1. cd /usr/local/nginx/sbin;
  2. sudo ./nginx;
  3. # 或者
  4. cd /usr/local/nginx/sbin & sudo ./nginx;
复制代码
3.2、如何判断nginx已启动

(1)再次启动nginx
如果nginx已经启动,则再次启动会报如下错误:
  1. cd /usr/local/nginx/sbin & sudo ./nginx;
  2. [1] 7954
  3. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  4. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  5. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  6. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  7. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  8. nginx: [emerg] still could not bind()
  9. [1]+  Done                    cd /usr/local/nginx/sbin
复制代码
(2)还可通过查看进程,判断nginx是否启动:
  1. ps -ef|grep nginx;
复制代码
nginx的进程信息如下:

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

 
3.3、通过配置启动

该启动方法的命令如下:
  1. sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf;
复制代码
3.4、设置开机启动

命令如下:
  1. # 打开/etc/rc.d/rc.local文件
  2. vim /etc/rc.d/rc.local;
复制代码
在文件末尾追加如下内容:
  1. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 2>&1
复制代码
重启系统,检查nginx是否随系统启动。
 

四、关闭 Nginx

4.1、优雅地关闭

  1. sudo kill -QUIT $主进程id;
复制代码
优雅地关闭之所以称为优雅,是因为如果关闭时还有用户请求,会等所有的用户请求都处理完,才进行关闭。
 
4.2、快速关闭

  1. sudo kill -TERM $主进程id;
  2. # or
  3. sudo kill $主进程id;
复制代码
注:kill 不加参数,也是快速关闭。
 
4.3、只关闭主进程

  1. sudo kill -9 $主进程id;
复制代码
如:kill -9 7720

上图可以看出:通过这种方式关闭ngin的主进程,子进程还是存活的。
通过ps命令,可以获得主进程的id。
 
4.4、使用nginx关闭服务

  1. sudo /usr/local/nginx/sbin/nginx -s stop;
复制代码
 

五、重启 Nginx

使用下面的命令,可以对 Nginx 进行重启:
  1. 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如何安装?

答:我使用的云服务器是有这个命令的,如果自己的系统没有,可以通过下面的命令安装:
  1. sudo apt install lrzsz;
复制代码
 
6.3、如果没有 make如何安装?

答:和上面的命令类似:
  1. sudo apt install make;
复制代码
 
6.4、zlib 从哪里下载?

答:zlib的下载地址:
http://zlib.net/
我选的是tar.gz格式的文件:

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

答:上传文件后,会出现莫名的字符。报错信息如下:
[code]rz -y
## 结果输出
rz: nginx-1.20.2.tar.gz removed.                                                                    ubuntu@VM-(reverse-i-search)`': q$ZGÿZU͇^C k^C

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表