nginx学习之路
nginx反向代理服务器
1.技术选型
nginx主要能实现的功能有负载均衡,反向代理,动静分离.选择nginx主要为了实现反向代理以及负载均衡功能,
*为什么要实现反向代理
传统项目直接暴露在外网入口,危险性高,不安全,使用nginx的虚拟IP可以代理tomcat服务,增加安全性.
*为什么要实现负载均衡?
一个服务器的负载过多,使用多个服务器来分担负载,
*为什么要实现动静分离?
有一些静态页面譬如Html等如果在nginx中可以直接返回,提高响应速度,增强用户体验.
2.nginx的优点
nginx性能较强,多核支持,支持插件,支持集群,支持后端查活,支持热启动,不支持外部读取.
3.部署配置版本罗列
nginx 1.12.2
pcre-8.37
tomcat 9.0.39
华为云 2CPU4G
4.nginx部署在华为云
统一将nginx、tomcat和pcre都放到/usr/local/src文件夹下,使用 tar -zxvf 指令解压.
(1)先解压pcre
(2)解压nginx,解压后/usr/local文件夹下面会出现一个nginx文件夹
(3)进入nginx文件夹,进入sbin文件夹 使用 ./nginx命令开启nginx服务(所有nginx指令操作都需要在这个目录下)
(4)windows访问 IP:80 出现nginx页面,部署nginx成功
5.使用nginx实现反向代理
nginx.conf文件
首先是listen监听端口,然后是server_name 一般使用自己对外暴露的IP,proxy_pass代理转发到哪个端口.
重启nginx实现反向代理.
6.使用nginx实现负载均衡
nginx.conf


默认使用轮询来进行负载均衡.也就是两个接口排序进行接收.
7.nginx负载均衡的几种路由规则
(1) 轮询:默认方式
(2)权值:weight 在conf文件的 upstream server 后面加上 weight : 1.来设定权值.如果权值越大,调用的机会越大.
代码如下.
upstream backend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
(3)ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
代码如下:
upstream backend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
(4)fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
代码如下:
upstream backend {
server server1.linuxany.com;
server server2.linuxany.com;
fair;
}
nginx学习之路的更多相关文章
- jQuery学习之路(1)-选择器
▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- RPC远程过程调用学习之路(一):用最原始代码还原PRC框架
RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- [精品书单] C#/.NET 学习之路——从入门到放弃
C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- 踏上Salesforce的学习之路(一)
相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...
- ReactNative新手学习之路07ListView_ renderHeader使用StaticContainer
react native新手学习之路07ListView_ renderHeader使用StaticContainer 1.某些特殊场景需要用ScrollView滚动和ListView配合但是不幸运的 ...
随机推荐
- 记录:安装nginx
练习的项目,数据都是跨域获取,上线后就不能再获取到数据,就用到nginx来做代理 注意点: 我用的是阿里云轻量服务器,防火墙在默认情况下是把80端口占据了,然而,安装nginx后,ngi ...
- H5 判断当前浏览器环境是 微信还是支付宝
let ua = window.navigator.userAgent.toLowerCase(); //判断是不是微信 if (ua.match(/MicroMessenger/i) == &quo ...
- 解决Vue.js devtools插件成功装上,却在控制台中找不到的问题
参考:https://blog.csdn.net/CCCCt1/article/details/97668483
- 【python学习】数据结构第一节
1.访问元组或列表中的值 (注:元素是从0开始从左往有编号的,或者从右向左编号[-1开始]) 列表 x1 = [1,2,3,4] 元组 x2 =(1,2,3,4) print(x2[0]) ...
- mysql实训
MYSQL You have an error in your SQL syntax; check the manual that corresponds to your MySQL server v ...
- drf从入门到飞升仙界 03
APIView执行流程 基于APIView+JsonResponse编写接口 # APIView是drf提供给使用者的一个类,在使用drf写视图类,继承都是这个类及其子类 # APIView继承了Dj ...
- 064_Js常用的五大事件 onclick nochanger onload onsubmit onblur
事件是电脑输入设备与页面交互的响应. onload加载完成事件:onload事件 是在页面被浏览器加载完成之后.自动触发的响应 onclick单击事件 onblur失去焦点事件 onchange内容发 ...
- Angular+FileSaver实现导出(xlsx或ExcelJS)
1.安装相关插件 npm install file-saver --savenpm install @types/file-saver --save-dev 一.xlsx(虽然强大,但是默认不支持改变 ...
- 学习lua-02,引入其他lua文件,调用全局方法
local testlua = require "testlua" --testlua.compertoNum(1, 2, 4, 5, 11, 23, 543, 123, 45, ...
- usbip:(二)从linux内核了解usb
一.前言 1.首先了解一下EHCI.UHCI和OHCI. 从硬件上来说,usb 设备要想工作,除了外设本身,必须依赖于 usb host controller.一般来说,一个电脑里有一个 usb ho ...
