Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强。
说白了Nginx实际上是和tomcat一样都属于一种服务器,但是nginx的并发性能更好内存更小,所以在企业中广泛使用。
目录
一、Nginx安装:
1、基本安装:
2、配置环境变量:
二、Nginx基本目录:
三、Nginx基本命令:
四、Nginx配置文件:
五、Nginx应用:
1、部署静态资源:
2、反向代理:
1、正向代理:
2、反向代理:
3、配置Ngnix
3、负载均衡:
1、轮询配置:
2、负载均衡策略:
一、Nginx安装:
1、基本安装:
安装步骤很简单,按照下面的步骤一步一步执行即可:
1、安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2、下载Nginx安装包wget https://nginx.org/download/nginx-1.16.1.tar.gz
3、解压 tar -zxvf nginx-1.16.1.tar.gz
4、cd nginx-1.16.1
5、./configure --prefix=/usr/local/nginx
6、make && make install
2、配置环境变量:
1、进入系统配置文件,添加nginx环境变量。
/usr/local/nginx/sbin:
2、重新加载配置文件:
source /etc/profile
二、Nginx基本目录:
重点目录/文件:
- lconf/nginx.conf nginx配置文件
- lhtml 存放静态文件(html、CSS、Js等)
- llogs 日志目录,存放日志文件
- lsbin/nginx 二进制文件,用于启动、停止Nginx服务
三、Nginx基本命令:
1、查看版本号: nginx -v
2、检查服务器配置文件是否正常: nginx -t
3、启动: nginx
4、停止: nginx -s stop
5、重新加载: nginx -s reload
四、Nginx配置文件:
五、Nginx应用:
1、部署静态资源:
Nginx部署静态资源十分简单,只需要将静态资源存放在一个目录下,然后修改Nginx的配置文件即可。
server {
listen 80; #监听端口
server_name localhost; #服务器名称(域名)
location / { #匹配客户端请求url
root html; #指定静态资源根目录,html是nginx自带的存放静态网页的目录
index index.html; #指定默认首页
}
}
2、反向代理:
1、正向代理:
用户将请求发送给代理服务器,代理服务器将数据发送给目标服务器,目标服务器将请求返回给代理服务器,最后代理服务器再将消息返回给用户的过程叫正向代理。
正向代理它代理了客户端,相当于客户去访问目标网址。
2、反向代理:
反向代理:基本流程是与正向代理是相同的,都是通过用户发送请求 -->代理服务器-->目标服务器。但是二者的区别在于正向代理知道自己访问的是代理服务器,而反向代理是无感知的,用户本质上是不知道自己访问的是代理服务器。
反向代理它代理了目标服务器,让客户感觉自己实际上是在和目标服务器本身进行交互
1、负载均衡。反向代理服务器相当于一个服务站,当接收到请求时根据负载情况将不同的请求发送到不同的服务器上。
2、提高内部服务器的安全。
- 正向代理中代理服务器相当于用户,所以保护了用户ip信息,而反向代理代理了目标的服务器,所以隐藏了真实服务器的地址信息,用户实际是在和代理服务器交互而不是目标服务器本身。
- 反向代理服务器相当于应用级防火墙,所以检查十分严格。
3、提高访问速度。反向代理服务器对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度。
3、正向和反向代理的区别:
1、正向代理实际代理的是客户端。反向代理代理的是目标服务器。
2、正向代理是客户端架构,而反向代理是服务器架构。
3、正向代理中,服务器不知道真正的用户是谁。反向代理中,用户不知道真正的服务器是谁。
4、正向代理主要用来解决访问问题。反向代理主要用于解决负载均衡、安全防护,但二者都能提高访问速度。
3、配置Ngnix
修改配置文件,添加新的server:
通过上述配置,我们就可以实现通过访问 192.168.138.100:82/目标路径 就可以实现对192.168.138.101/目标网址 的访问.
3、负载均衡:
随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群(将同一应用部署到多个服务器上),进行性能的水平扩展以及避免单点故障出现。
负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
1、轮询配置:
修改配置文件,添加下述代码:
- 变量名要上下保持一致
- upstream定义一组服务器
配置负载均衡:
upstream 变量名{ #upstream指令可以定义一组服务器
server 192.168.138.10:8080; #第一台服务器
server 192.168.138.101:8081; #第二台服务器
}
server {
listen 8080;
server_name localhost; #域名
location / {
proxy_pass http://变量名; #与上面定义的变量名要保持一致
}
}
上述访问是通过轮询的方式进行访问,访问完服务器一之后访问服务器二,如此循环。
2、负载均衡策略:
名称 | 说明 |
轮询 | 默认方式 |
weight | 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 依据最少连接方式 |
url_hash | 依据url分配方式 |
fair | 依据响应时间方式 |
以权重为例:
在上面修改的基础上,每个服务器地址后加上 weight=值 即可,权重越大访问的几率越高。
配置负载均衡:
upstream targetserver{
server 192.168.138.101:8080 weight=10; # 定义权重
server 192.168.138.101:8081 weight=5;
}
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}