Debian系统如何使用软件包管理器或Docker安装Nginx

722 阅读3分钟

「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」。

作者:Mintimate

博客:www.mintimate.cn

Mintimate's Blog,只为与你分享

Nginx

“Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。”

优点

Nginx的优点,相信大家基本都知道,这里列举一些:

  • 轻量级:Nginx相比Apache,并发性更好,CPU内存占用更少。但是对于批量的rewrite请求,Apache相应效率更高。
  • 高扩展性:Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。因此,当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。
  • 高可靠性:Nginx的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性;官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。
  • 热部署:Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。并且也支持不停止服务就更新配置项、更换日志文件等功能。

环境准备

本次安装Nginx,是在Debian发行版本的Linux上安装,如果是CentOS发行版本Linux,需要注意:

  • 软件包管理安装需要使用yum,而不是apt-get
  • 编译安装时,需要自行安装:gccpcrezlib以及openssl

另外,如果你觉得本文的安装方法过于技术型。其实,也可以试试宝塔面板的一键操作。

本次教程使用一台Debian10 x64服务器:

Debian10

软件包安装Nginx

Debian使用apt-get作为软件包管理器,所以我们可以使用apt-get直接安装dpkg,进而安装Nginx:

sudo apt install nginx

安装Nginx 安装完以后,输入whereis nginx查看Nginx的安装位置:

Nginx配置文件 其中的nginx.conf为Nginx的配置文件。

这样的方法很简单,也十分快;但是坏处也很明显:

  • 无法自定义Nginx模块

Docker安装Nginx

Docker Nginx

查找镜像

Docker安装Nginx其实和dpkg安装差不多,在安装了Docker情况下

# 查找Nginx
docker search nginx

查找Nginx

如果没有Docker,可以用Docker脚本安装:

curl -sSL https://get.daocloud.io/docker | sh

Docker的安装

拉取镜像

使用命令拉取镜像到本地

docker pull nginx

拉取镜像

本地文件

有了Docker,当然还要有文件映射。所以,我们事先创建一下:

mkdir -p nginx/{conf,conf.d,html,logs}

本地文件

之后,插件nginx.conf文件:

vim nginx/conf/nginx.conf

Demo:

user nginx;
worker_processes 1;
 
error_log /var/log/nginx/error.log warn;
pid    /var/run/nginx.pid;
 
 
events {
  worker_connections 1024;
}
 
 
http {
  include    /etc/nginx/mime.types;
  default_type application/octet-stream;
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
 
  access_log /var/log/nginx/access.log main;
 
  sendfile    on;
  #tcp_nopush   on;
 
  keepalive_timeout 65;
  client_max_body_size 1024m;
  #gzip on;
 
  include /etc/nginx/conf.d/*.conf;
}

插件默认配置文件:

vim nginx/conf.d/defaut.conf

参考模版:

server {
  listen    80;
  server_name localhost;

  location / {
    root  /usr/share/nginx/html;
    index index.html index.htm;
  }

}

最后,创建一个Nginx Demo页面:

vim nginx/html/index.html

模版

启动镜像

现在就可以取启动镜像了。

之后,查看镜像ID:

docker images nginx

查看ID

根据ID,创建Docker容器,并完成80端口的映射以及目录映射:

docker run -d -p 80:80 -v /root/myApplication/web/nginx/html:/usr/share/nginx/html -v /root/myApplication/web/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/myApplication/web/nginx/conf.d:/etc/nginx/conf.d -v /root/myApplication/web/nginx/logs:/var/log/nginx c316d5a335a5

创建容器

此时,浏览器登陆即可看到Nginx页面:

Nginx页面

总的来说,Docker安装的Nginx,我觉得配置起来,和dpkg安装Nginx差不多。

常用Nginx命令

这边给大家介绍一些Nginx常用命令:

命令命令含义
nginx打开 nginx
nginx -t测试配置文件是否有语法错误
nginx -s reopen重启Nginx
nginx -s reload重新加载Nginx配置文件
nginx -s stop强制停止Nginx服务
nginx -s quit安全地停止Nginx服务(即处理完所有请求后再停止服务)

软件包安装的Nginx可以直接在主终端内运行命令;Docker安装的Nginx,可以进入容器内运行。

如何卸载Nginx

如果想换安装Nginx的安装方式,已经安装的Nginx如何卸载呢?

dpkg卸载Nginx

如果你使用的是dpkg安装的Nginx,安装很简单,卸载也一样:

# 查看所有Nginx组件
dpkg --get-selections|grep nginx

查看Nginx

之后卸载:

apt --purge remove \*nginx\*

docker卸载Nginx

如果你使用Docker安装的Nginx,卸载也很简单:

# 查看Nginx镜像ID
docker images

查看ID

获取ID后,根据ID卸载即可:

docker rmi c316d5a335a5

如果删除失败,比如:

删除失败

我们先停止运行容器:

 docker ps -a
 docker rm $ID
 docker rmi $ID

卸载成功

这样Nginx就已经卸载完成了

END

其实呢?个人是喜欢编译安装Nginx。

下次文章就教大家怎么编译安装Nginx

不过,其实宝塔面板的Nginx也很不错,新版本也可以选择模块编译安装,但是总有些大佬,觉得面板部署没有“灵魂”。这里不过多介绍。

如果你平时喜欢用Docker,可以试试Docker安装,Docker的第三方库,应该是可以安装模块的,或者有集成模块。

Nginx确实是个Web服务器神器呢~~~