什么是 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 源自动安装)
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