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学习之路的更多相关文章

  1. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  2. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  3. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  4. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  5. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

  6. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  7. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  8. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  9. 踏上Salesforce的学习之路(一)

    相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...

  10. ReactNative新手学习之路07ListView_ renderHeader使用StaticContainer

    react native新手学习之路07ListView_ renderHeader使用StaticContainer 1.某些特殊场景需要用ScrollView滚动和ListView配合但是不幸运的 ...

随机推荐

  1. map函数中调用多个async await请求出现的promise问题解决

    以上这个打印会返回[promise,promise,promise]那么是什么原因造成的呢?我们先来一个方法解决: 但是以上这种解决方式并没有真正解决问题,还是会返回一个[promise,promis ...

  2. 【C学习笔记】day2-1 给定两个整形变量的值,将两个值的内容进行交换

    #include<stdio.h> int main() { int a=0, b=1,temp; temp = b; b = a; a = temp; //printf("%d ...

  3. jmeter非GUI模式之jtl文件解析

    我们知道非GUI模式的方式执行完成jmeter后,会生成jtl文件,里面打开后就是一行行的测试结果, <httpSample t="1" lt="1" t ...

  4. ES语法(简)

    1.上编写到怎样安装部署elk,这篇记录怎样简单使用.以便于后期复习使用. 2.登录localhost:5601进入开发者模式. 3.初学担心没有数据可以自己PUT数据比较直观的学习语法.这里可以用网 ...

  5. idea开发工具无法解析jdk

    jdk 设置好了,但是总是无法引入 java的库 解决办法如下 点击按钮即可

  6. AWS ssm 连接实例

    aws ssm连接:aws ssm start-session \ --profile xxRole \ --region cn-northwest-1 \ --target i-08d6874428 ...

  7. HTTP 协议(超文本传输协议)

    一.HTTP 协议(超文本传输协议) http 协议 版本 1.1 http由来 1960年 http通讯 http原理 URL和URI 区别 Request 请求报文 Response 响应报文 H ...

  8. Linux 服务器配置。

    关于防火墙 1.首先不管防火墙有没有关 都使用systemctl stop firewalld 关闭防火墙 2.然后使用 yum install iptables-services 安装或更新服务 3 ...

  9. java中的数组遍历(简便小方法)

    int[] a = {1,2,3,4}; for(int k:a){ System.out.println(k); //注意冒号后面直接写数组名即可. //注意,k的值就是数组a中某一项的值,即语句& ...

  10. egg框架学习笔记

    1.安装 npm i egg-init -g egg-init egg-example --type=simple cd egg-example yarn install npm run dev // ...