nginx介绍

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

特点: 占有内存少 不超过2M ,并发能力强 3-5万次/秒

注意事项: 在安装Nginx过程中, Nginx的安装目录 不要装到C盘,并且路径不要有中文 空格 及系统目录.
安装完成后安装目录中有nginx.exe文件, 点击启动就可以了. 这里会弹一个命令窗口,然后立即就会消失,这不是程序启动的问题;
当我们可以观察资源管理器, 就会发现nginx已经启动了

我们发现有两个nginx.exe正在运行: 内存占用大的是主进程. 内存占用小的是守护进程;
当我们需要手动关闭nginx时,需要先关闭守护进程,之后再关闭主进程;

Nginx 启动后,可以访问网址: localhost:80 将会给我们一个欢迎界面

关于nginx 操作命令
命令执行位置: 执行命令时需要在nginx的根目录中执行.之后地址栏中 键入 cmd进入dos命令创建中

启动命令 start nginx
重启命令 nginx -s reload
关闭命令 nginx -s stop

Nginx实现反向代理:

什么是反向代理<重点>

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
特点:

  1. 反向代理服务器位于用户和目标服务器之间.
  2. 反向代理服务器就相当于目标服务器.(用户以为代理服务器就是真实服务器)
  3. 用户通过反向代理服务器获取资源 而不是直接访问真实服务器.
  4. 用户不清楚真实的服务器到底是谁.
  5. 反向代理是服务器端代理.保护真实服务器信息.

特征: 用户不清楚真实目标服务器是谁.

Nginx反向代理配置

http {#http协议内,可以有多个服务 每个服务就是一个serverserver {# 监听用户访问的端口   默认是80端口listen       80;   # server_name 服务名称  浏览器的访问域名server_name  localhost;#配置反向代理的实现  / 拦截所有的用户请求location / {# root代表关键字   代表反向代理的目录root   html;# index 代表默认的访问页面index  index.html index.htm;}}}

反向代理使用说明:

1.url地址: http://image.jt.com/2020/08/07/xxxx.png
2.本地磁盘地址:D:\JTSOFT\images/2020/08/07/xxxxpng
目的:通过域名访问真实的磁盘地址.
可以利用nginx的反向代理完成配置.
编辑Nginx配置文件

# 配置图片服务器server {listen 80;server_name image.jt.com;##通过网址转向指定的目录  注意/的写法location / {root D:/JT-SOFT/images;}}

修改HOSTS文件
说明: 每个操作系统针对开发人员,在本地都会有一个hosts文件可以编辑.
windows: C:\Windows\System32\drivers\etc

利用工具软件管理HOSTS文件:

京淘配置

#左侧写IP地址 右侧写域名 中间使用空格分隔 配置内容
127.0.0.1 image.jt.com
127.0.0.1 manager.jt.com
127.0.0.1 www.jt.com
127.0.0.1 sso.jt.com

nginx域名代理
要求:用户通过http://manager.jt.com的方式 访问localhost:8091的服务器.
利用反向代理的方式实现该功能.
配置nginx

# 商品管理服务器  监听的是用户 manager.jt.com:80  映射的是url地址server {listen   80;server_name  manager.jt.com;#进行反向代理location / {#映射的url请求网址.proxy_pass http://localhost:8091;}  }

访问效果

Nginx负载均衡原理


Nginx 集群搭建
说明: 要求启动3台服务器,运行jt-manager项目 端口号分别为8081/8082/8083, 通过/getPort请求,获取当前服务器端口号信息并且字符串返回.

动态获取当前服务器端口号
目的:为了能够在以后的负载均衡访问时看到自己访问的服务器到底是谁.

package com.jt.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class PortController {//考点:动态复制操作@Value("${server.port}")private Integer port;@RequestMapping("/getPort")public String getPort(){return "当前访问的端口号:"+port;}
}

发布3台tomcat服务器
步骤:1.将项目打包 将项目先clean- build----install

步骤2.准备部署路径,之后将war包上传

3.利用命令运行服务器

4.访问测试

负载均衡的策略:

一:轮询策略:
说明: 根据nginx的配置文件,依次访问服务器.

# 商品管理服务器  监听的是用户 manager.jt.com:80  映射的是url地址server {listen   80;server_name  manager.jt.com;#进行反向代理location / {#映射的url请求网址.#proxy_pass http://localhost:8091;proxy_pass  http://jtWindows;}  }#配置集群  1.默认方式   轮询策略upstream jtWindows {server localhost:8081;server localhost:8082;server localhost:8083;}

二:权重策略:
说明: 性能越高的服务器,则承担的压力也就越高.

#配置集群  1.默认方式   轮询策略   2.权重策略 upstream jtWindows {server localhost:8081  weight=6;server localhost:8082  weight=3;server localhost:8083  weight=1;}

三:IPHASH策略
需求: 有时在访问时可能会固定的访问某台服务器. 将用户与服务器进行绑定. 以后用户只能访问该服务器.
算法: IPHASH算法.

#配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略upstream jtWindows {ip_hash;server localhost:8081  weight=6;server localhost:8082  weight=3;server localhost:8083  weight=1;}


弊端:

  1. 用户与服务器进行绑定,当服务器宕机时则可能影响用户的使用.
  2. 由于访问是通过算数计算的结果,可能导致严重的负载不均的现象.

Nginx 高级属性

一:down属性
说明:nginx在不做任何的配置时,无法感知服务器是否正常运行.所有会频繁的访问故障机.
解决方案: 可以利用down属性 来标识故障机

#配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略upstream jtWindows {#ip_hash;    server localhost:8081  weight=6;server localhost:8081 down;server localhost:8082 ;server localhost:8083 ;}

二:备用机策略
说明:正常情况下一般服务器部署时需要准备几台服务器当做备用.正常的情况下该服务器不参与工作.只有当主机遇忙时/或者宕机时.该服务器才会工作.

#配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略upstream jtWindows {#ip_hash;    server localhost:8081  weight=6;server localhost:8081 down;server localhost:8082 down;server localhost:8083 backup;}

三:nginx高可用配置
说明:当tomcat服务器宕机时,可以通过如下的配置,实现服务器的自动的切换.无需人为的干预.

配置信息:
fail_timeout=60s; 设定超时时间(定义一个周期)
max_fails=1 设定最大的访问失败次数.

#配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略upstream jtWindows {#ip_hash;    server localhost:8081  weight=6;server localhost:8081 max_fails=1 fail_timeout=60s;server localhost:8082 max_fails=1 fail_timeout=60s;server localhost:8083 max_fails=1 fail_timeout=60s;}

配置说明:
如果nginx访问某台服务器时,如果该服务器访问失败,失败的次数达到最大失败次数时.在60秒之内,nginx不会再次访问故障机.直到下一个周期.

分析Nginx是如何实现反向代理和负载均衡相关推荐

  1. nginx和tomcat实现反向代理、负载均衡和session共享

    这类的文章非常多,nginx和tomcat实现反向代理.负载均衡实现非常easy,能够參照http://blog.csdn.net/liuzhigang1237/article/details/888 ...

  2. Nginx简单入门与反向代理和负载均衡

    什么是Nginx   Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师伊戈尔•西索夫(Igor Sysoev)所开发,官方测 ...

  3. Nginx入门简介和反向代理、负载均衡、动静分离理解

    场景 Nginx简介 Nginx ("engine x")是一个高性能的 HTTP 和反向代理服务器 特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页 ...

  4. nginx的重定向,反向代理以及负载均衡

    试验环境: 本次试验中的服务器全用的是CentOS-6.4-x86_64操作系统: nginx服务器地址:192.168.80.10 客户端主机地址:192.168.80.1 软件包下载地址: hea ...

  5. 【Nginx 快速入门】反向代理、负载均衡、动静分离

    一样东西的诞生通常都是为了解决某些问题,对于 Nginx 而言,也是如此. 比如,你出于无聊写了一个小网站,部署到 tomcat 之后可以正常访问了,好开心. 这时候你的网站用户非常少,不会存在高并发 ...

  6. 【Nginx 之一】Nginx初体验(反向代理、负载均衡、动静分离)

    1. 概述 1.1 什么是Nginx   Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数 ...

  7. Nginx安装手册,反向代理,负载均衡,keepalived高可用

                Nginx安装手册    附件在下面 看附件中的 pdf 中的资料写的比较清晰: nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6. ...

  8. 使用Nginx实现服务器反向代理和负载均衡

    前言 同事总问我Nginx做反向代理负载均衡的问题,因此特意留下一篇扫盲贴! 直接部署服务器的风险 假设,我开发了一个网站,然后买了一台Web服务器和一台数据库服务器,直接部署到公共网络上.如下图,网 ...

  9. Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例

    场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...

最新文章

  1. jetty java 实例_Maven+Jetty+Servlet 简单示例
  2. 判断网页pdf还是html,html5 – 如何知道PDF.JS是否完成渲染?
  3. android view getx 0,Android动画:解决通过View.getY()获取初始位置为0的问题
  4. paginatorhelper ajax,Bootstrap Paginator+PageHelper实现分页效果_蓝瞳_前端开发者
  5. 计算机如何驱动无线网络,win7焦头烂额的无线网卡驱动程序安装问题!求帮助!...
  6. 加入karia2开源项目
  7. 西门子S7-200 SMART编程软件下载
  8. 前端——》antdv根据拼音过滤select选择器的选项
  9. Kali内Nmap端口扫描与高级扫描
  10. 如何使用群发工具?邮件群发软件免费有哪些?
  11. 悟以往之不谏,知来者之可追~
  12. 2020个人网站搭建指南(华为云+wordpress)
  13. SIP语音对讲从零到整之(一)sip介绍
  14. 影视公司触网意在大数据
  15. 【转载】《天下粮仓》
  16. Fragment的基本用法
  17. matlab绘画三维图形(三)
  18. openwrt.img固件转EXSI硬盘文件(超详细)
  19. DevCloud加持下的青软,让教育“智”上云端
  20. matlab获得solve得到的值,matlab solve函数赋值方程组

热门文章

  1. 【易通慧谷】供应链金融主要模式及对商业银行的影响
  2. 联发科嵌入式实习面经
  3. 科比自传读后感 --曼巴精神
  4. android volte功能,VOLTE功能介绍
  5. 计算机音乐数字乐谱青芒,牵丝戏 - 青芒Qimo - 5SING中国原创音乐基地
  6. Android Studio《一行代码》3.3.4 百分比布局
  7. wifi 信号差 android,手机WiFi信号弱怎么办 手机WiFi信号突然变弱的解决方法
  8. SaaS Metrics 2.0 – A Guide to Measuring and Improving what Matters
  9. linux环境下运行flex,什么是flex?
  10. JAVA IO(BIA)总结