Nginx
Nginx
概念
nginx是一个使用c语言开发的高性能的http服务器及反向代理服务器。
nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
正向代理
代理客户端的请求,代替客户端向服务端发送请求,客户端的请求都会发送到代理服务器,再由代理服务器统一发送给服务器端。
经过正向代理服务器,访问服务器端。:VPN
反向代理
代替服务器端接收请求,所有的请求先会到代理服务器,再由代理服务器发送到各个服务器端。
整合多个服务器端,为一个请求地址。:服务器负载均衡
负载均衡
通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。
nginx中负载均衡的策略
-
轮询(默认)
每个请求按照时间顺序,依次逐一分配到配置的服务器上。每个服务器权重一样。
upstream backserver { server 192.168.0.14; server 192.168.0.15; } -
加权轮询
在轮询的基础上,在每个服务器上设置权重,根据权重比例将请求配置到服务器上。每个服务器接收到的请求数比例,与权重一致。
upstream backserver { server 192.168.0.14 weight=8; #通过weight为每个服务器加上权重 server 192.168.0.15 weight=10; } -
IP绑定 ip_hash
根据算法将请求ip地址计算出一个hash值,同一个ip地址的请求发送到固定的服务器上,解决session不能共享的问题。
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } -
fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver { server server1; server server2; fair; } -
url_hash(第三方)
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
nginx安装
windows环境下安装
- 1、官网下载压缩包:http://nginx.org/en/download.html
- 2、解压到安装目录
- 3、通过安装目录下,nginx.exe启动。
- 4、nginx启动成功后,默认会接管80的端口。浏览器访问127.0.01:80或127.0.01或localhost。出现nginx提示信息,则表示启动成功。
nginx常用命令
- nginx的启动和关闭
- nginx -h 查看帮助信息
- nginx -v 查看Nginx的版本号
- nginx -V 显示Nginx的版本号和编译信息
- start nginx 启动Nginx
- nginx -s stop 快速停止和关闭Nginx
- nginx -s quit 正常停止或关闭Nginx
- nginx -s reload 配置文件修改重新加载
nginx使用
修改nginx默认端口
-
1、在安装目录/conf/nginx.conf文件中修改端口
server { listen 8080; #修改端口为8080 server_name localhost; -
2、执行nginx重新加载配置文件的命令:nginx -s reload
使用nginx代理项目
启动springboot项目时指定端口号:java -jar demo.jar --server.port==8081
-
1、在nginx.conf的http模块中配置负载均衡信息
upstream demo { server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=1; } -
2、在server中配置代理
location / { root html; index index.html index.htm; proxy_pass http://demo; #配置http模块中配置的负载均衡信息,demo } -
3、浏览器访问nginx监听的端口,nginx会将请求按照负载均衡策略发送到服务器上。