一、nginx简介
1.什么是nginx
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
2.nginx可以做什么
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
3.Nginx 作为 web 服务器
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。
4.正向代理
Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。
正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访 问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
- 简单一点:通过代理服务器来访问服务器的过程 就叫 正向代理。
- 需要在客户端配置代理服务器进行指定网站访问
5.反向代理
- 反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
- 我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。
6.负载均衡
- 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负 载均衡。
- 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服 务器处理完毕后,再将结果返回给客户端。
这种架构模式对于早期的系统相对单一,并发请求相对较少的情况下是比较适合的,成 本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂 度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易 造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情 况呢?
我们首先想到的可能是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机 器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能 满足日益提升的需求了。最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量 是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能 够满足需求的。那么怎么办呢?
上面的分析我们去掉了增加服务器物理配置来解决问题的办法,也就是说纵向解决问题 的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解 决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们 所说的负载均衡。
6.动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速 度。降低原来单个服务器的压力。
二、Linux安装Nginx
1.官网介绍
http://nginx.org/en/download.html
2.上传安装包
上传到指定目录中 /usr/local/src
3 解压Nginx 压缩文件
1.删除安装文件
rm -f nginx-1.21.3.tar.gz
2.修改文件名称
mv nginx-1.19.4 nginx-source
4 关于nginx 目录说明
改完名称之后的结果:
5 安装nginx服务器
说明:在nginx-source的根目录中执行如下命令
1.需要提前安装nginx的依赖项
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2.下载
./configure
直接结果:
问题补充: 如果 ./configure 报错没有权限,则执行如下命令
1.chmod + x configure
2.在nginx-source的根目录中 执行 make
3.根目录中执行 make install
6.Nginx工作目录说明
说明: 查找工作目录
whereis nginx
7.跳转到Nginx工作目录
7.1 nginx命令
进入nginx/sbin目录中执行
1.启动命令: ./nginx
2.重启命令: ./nginx -s reload
3.关闭命令: ./nginx -s stop
8. 上传前端静态资源
说明: 将前端的web资源上传到nginx的根目录下.
1.前端文件位置
2.上传目录位置
9.修改nginx配置文件
需求说明:
1.实现图片反向代理
2.前端业务代理
3.后端tomcat集群代理
#配置文件上传路径
server {
listen 80;
server_name 47.97.50.125;
location / {
root /usr/local/src/files;
}
}
#配置前端文件上传路径
server {
listen 80;
server_name 47.97.50.125;
location / {
root dist;
index index.html;
}
}
upstream tomcats{
server 192.168.126.129:8091;
server 192.168.126.129:8092;
server 192.168.126.129:8093;
}
server {
listen 80;
server_name 47.97.50.125;
location / {
proxy_pass http://tomcats;
}
}
编辑成功之后,将nginx.conf文件上传到Linux系统中(删除原有文件),
上传之后重启nginx服务: