安装方式

  • yum(CentOS)
  • apt-get(ubuntu)
  • brew(mac)
  • wget+make(通用)

    在ubuntu中使用make安装会有很多包不存在,需要手动去安装。在mac中使用make安装会有很多权限相关的问题,建议直接使用brew。 ubuntu需要安装的一些常见的包,持续更新!

apt-get

  1. apt-get update
  2. apt-get install nginx -y

yum

  1. yum install nginx -y

brew

  1. # 首先安装brew
  2. # https://brew.sh/
  3. # 没有科学的同学,百度下国内版本
  4. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  5. # 安装nginx
  6. brew install nginx

编译安装

https://nginx.org/

download

nginx的安装 - 图1

  • Mainline version
    最新的版本
  • Stable version
    稳定的版本
  • Legacy versions
    历史版本

我们选择稳定的版本: nginx-1.20.0

  1. wget https://nginx.org/download/nginx-1.20.0.tar.gz

nginx的安装 - 图2

解压

  1. tar -xzf nginx-1.20.0.tar.gz

-x 从压缩文件中还原文件。

-z 通过 gzip 指令处理压缩文件。

-f 指定压缩文件。

具体可以查看 tar 的命令

编译

参数介绍

  1. ./configure --help | more

nginx的安装 - 图3
nginx 执行过程中会找哪些目录下的哪些文件,做为他的辅助文件。

如果没有任何变动,只需要指定 --prefix 这个参数就行。

nginx的安装 - 图4
在执行过程中表示使用或者不使用哪些文件。一般以 with 或者 without 开头。

  • with 开头的模块默认是不会打包进 nginx 中的。

    加了代表会被打包进去

  • without 开头的默认会被编译进 nginx 中的。

    加了表示会被移除

nginx的安装 - 图5
nginx 编译中需要的一些特殊的参数,比如用到了 gcc 编译时候需要加一些参数、或者需要打印 debug 级别的日志。

默认编译

  1. ./configure --prefix=/home/kaikeba/nginx

代表使用的是默认编译,编译到目录 /home/kaikeba/nginx

nginx的安装 - 图6

make 编译

  1. make

如果没有任何错误,就编译完成了,生成了大量的中间文件,并最终生成了可以运行的 nginx 二进制文件。可以在 objs 目录查看。

nginx 的目标文件放在 objs/nginx 这里。

如果我们要对 nginx 进行升级,不能执行 make install. 需要在objs目录把 nginx 执行文件 copy 到安装目录中。

c 语言编译时生成的所有中间文件,都会放在 objs/src 目录。

如果使用动态模块编译,会生成对应的 .so 文件也会放在 objs 目录下。

make install

首次安装时候使用这个命令。

安装完毕以后

  1. cd /home/kaikeba/nginx

这里就是之前指定的安装目录。
nginx的安装 - 图7

  • sbin
    执行文件目录
  • conf
    配置文件目录,默认是从之前源码的 conf 目录中 copy 了一份过来
  • logs
    日志目录
  • html
    默认的网页目录

软连接

因为我们 --prefix 指定的安装目录不是 /usr/bin/nginx,所以需要软连接到执行目录之后才能全局使用。

  1. ln -s /home/kaikeba/nginx/sbin/nginx /usr/bin

启动nginx

  1. nginx
  2. # 或
  3. service nginx start

卸载nginx

apt-get

  1. # 停止nginx服务
  2. sudo service nginx stop
  3. # 删除除了配置文件以外的所有文件。
  4. sudo apt-get remove nginx nginx-common
  5. # 删除所有与nginx有关的东西,包括配置文件。
  6. sudo apt-get purge nginx nginx-common
  7. # 在上面命令结束后执行,主要是删除与Nginx有关的且不再被使用的依赖包。
  8. sudo apt-get autoremove
  9. # 删除两个主要的包。
  10. sudo apt-get remove nginx-full nginx-common

yum

  • 先停止 nginx 服务
  1. sudo service nginx stop

相当于

  1. sudo systemctl stop nginx.service
  • 删除 nginx 的自动启动
  1. chkconfig nginx off

systemctl disable nginx.service

  • 删除 Nginx 本地文件
  1. # 其实在执行yum remove nginx的时候,会清理 /usr/sbin/nginx
  2. rm -rf /usr/sbin/nginx
  3. rm -rf /etc/nginx
  4. rm -rf /etc/init.d/nginx
  • yum 清理
  1. yum remove nginx

brew

  1. sudo service nginx stop
  2. brew uninstall nginx
  3. # 最后根据提示删除对应的相关配置文件即可。

卸载通过make安装的

  1. # 停止nginx服务
  2. sudo service nginx stop
  3. # 或
  4. nginx -s quit
  5. # 或
  6. ps aux | grep nginx
  7. kill -9 pid
  8. # 删除软连接
  9. rm -rf /usr/bin/nginx
  10. # 删除nginx目录
  11. rm -rf /home/kaikeba/nginx
  12. # 删除其他比如日志文件等文件
  13. # ...