什么是 Nginx

Nginx 是一个 高性能的 HTTP反向代理 web 服务器,核心特点是 占有内存少,并发能力强

Nginx 体系化之基本概念和安装_后端

Nginx 能做什么

  • 高性能的静态 Http 服务器
  • 性能非常高,非常注重效率,能够经受高负载的考验。
  • 支持50000个并发连接数,不仅如此,CPU和内存的占用也非常的低,10000个没有活动的连接才占用2.5M的内存。
  • 反向代理服务器
  • 正向代理
  • 在浏览器中配置代理服务器的相关信息,通过代理服务器访问目标网站,代理服务器收到目标网站的响应之后,会把响应信息返回给我们自己的浏览器客户端

Nginx 体系化之基本概念和安装_nginx_02

  • 反向代理
  • 浏览器客户端发送请求到反向代理服务器(比如Nginx),由反向代理服务器选择原始服务器提供服务获取结果响应,最终再返回给客户端浏览器

Nginx 体系化之基本概念和安装_Nginx_03

  • 负载均衡服务器
  • 负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。
  • 动静分离
  • 动静分离就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求。后台应用服务器只负责动态数据请求。
  • 优势:分担负载,减轻web服务器的压力,适用于大负载。静态资源放置cdn,同时还可以通过配置缓存到客户浏览器中,这样极大减轻web服务器的压力。
  • 劣势:网络环境不佳时,ajax回应很慢,导致页面出现空白,出错处理会不好看。不利于网站SEO(搜索引擎优化),增加了开发复杂度。

Nginx 体系化之基本概念和安装_nginx_04

Nginx 特点

  • ⾼并发,高性能,内存消耗小
  • 扩展性好,nginx 具有模块化设计,允许第三方开发
  • 跨平台:Nginx 可以在⼤多数类 unix 操作系统上编译运⾏,⽽且也有 windows 版本
  • Nginx 的上⼿⾮常容易,配置也⽐较简单
  • 稳定性好,宕机概率很低
  • nginx 是一个异步非阻塞的事件驱动模型
  • 支持热部署

Nginx 快速安装

源码包安装

  • 官网下载 Nginx 源码包并上传到服务器(nginx.org
  • 安装 Nginx 依赖,pcre、openssl、gcc、zlib(推荐使用 yum 源自动安装)
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  • 解压 Nginx 源码包并进入文件
tar -xvf nginx-1.17.8.tar
  • 执行配置并编译
# 安装前置准备环境
yum install pcre pcre-devel -y # 安装准备环境
yum install openssl openssl-devel -y # 安装准备环境
cd nginx
./configure
make && make install
  • 进入 Nginx 目标并启动

rpm 在线安装

  • 下载 rpm 安装包
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm
  • 查看是否已经安装了 Nginx
rpm -qa|grep nginx
  • 执行安装命令
rpm -ivh nginx-1.18.0-1.el7.ngx.x86_64.rpm
  • 启动 nginx
systemctl start nginx
  • 设置 Nginx 开机自启动
# 查看 Nginx 是否开机自启动
systemctl list-unit-files |grep nginx

# 设置 Nginx 开机自启动
systemctl enable nginx

Nginx 常用命令

./nginx # 启动 nginx
./nginx -s stop # 终止 Nginx(Kill -9 Nginx 进程号)
./nginx -s reload ## 重新加载 Nginx.conf 配置文件
systemctl restart nginx ## 重启 Nginx
systemctl reload nginx ## 重新加载 Nginx.conf 配置文件
systemctl start nginx ## 启动 Nginx
systemctl stop nginx ## 停止 Nginx