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

什么是 Nginx

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

Nginx 能做什么

  • 高性能的静态 Http 服务器

    • 性能非常高,非常注重效率,能够经受高负载的考验。
    • 支持50000个并发连接数,不仅如此,CPU和内存的占用也非常的低,10000个没有活动的连接才占用2.5M的内存。
  • 反向代理服务器

    • 正向代理
    • 在浏览器中配置代理服务器的相关信息,通过代理服务器访问目标网站,代理服务器收到目标网站的响应之后,会把响应信息返回给我们自己的浏览器客户端
  • 反向代理

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

    • 负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。
  • 动静分离

    • 动静分离就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求。后台应用服务器只负责动态数据请求。
    • 优势:分担负载,减轻web服务器的压力,适用于大负载。静态资源放置cdn,同时还可以通过配置缓存到客户浏览器中,这样极大减轻web服务器的压力。
    • 劣势:网络环境不佳时,ajax回应很慢,导致页面出现空白,出错处理会不好看。不利于网站SEO(搜索引擎优化),增加了开发复杂度。

Nginx 特点

  • ⾼并发,高性能,内存消耗小

  • 扩展性好,nginx 具有模块化设计,允许第三方开发

  • 跨平台:Nginx 可以在⼤多数类 unix 操作系统上编译运⾏,⽽且也有 windows 版本

  • Nginx 的上⼿⾮常容易,配置也⽐较简单

  • 稳定性好,宕机概率很低

  • nginx 是一个异步非阻塞的事件驱动模型

  • 支持热部署

Nginx 快速安装

源码包安装

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

rpm 在线安装

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

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

Nginx 常用命令

bash 复制代码
./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
相关推荐
tan180°6 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
DuelCode7 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
优创学社27 小时前
基于springboot的社区生鲜团购系统
java·spring boot·后端
why技术7 小时前
Stack Overflow,轰然倒下!
前端·人工智能·后端
幽络源小助理7 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
ai小鬼头8 小时前
AIStarter如何助力用户与创作者?Stable Diffusion一键管理教程!
后端·架构·github
简佐义的博客8 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
Code blocks9 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
追逐时光者9 小时前
一款开源免费、通用的 WPF 主题控件包
后端·.net