谁说前端不需要懂-Nginx反向代理与负载均衡

学到老活到老

前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等。用一句别人开玩笑的话来说,java十年前的技术现在还能用,而前端的技术就不是这样的了

突然想起了deno项目发布的时候,一个搞笑的issue,“求别更新了,老子学不动了”。虽然看起来是一个玩笑的issue,但却道出了前端们不得不表现出来的疲态,知识点越来越庞大,学习的内容越来越多

也听到一些朋友们说,换成现在再面试阿里,恐怕不好进了啊。当然很多都是随便一说的玩笑话,听过一笑便可,不必当真,也不必抱怨了

好了,今天就直接来说一下主题吧,前端要了解一些运维的Nginx用法,内容不多,简单看看就好,这两个功能在工作当中就够用了,那么首先来看个问题,什么是反向代理与负载均衡

什么是反向代理与负载均衡

什么是反向代理

当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群

这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为反向代理

什么是负载均衡

公司会建立很多的服务器,这些服务器组成了服务器集群,然后,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器

所以,用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况

一句话:nginx会给你分配服务器压力小的去访问

Nginx反向代理与负载均衡的实现

用户访问网站的时候首先会访问nginx服务器,然后nginx服务器再从服务器集群中选择压力较小的服务器,将该访问请求引向该服务器

nginx配置

下面修改配置方面我就从mac系统下来进行简单的演示,如何安装的话也暂以mac为主了,windows系统直接去Nginx官网下载安装即可

安装nginx

1-进到homebrew官网,然后复制命令,预安装需要的东西

2-brew install nginx 安装nginx

3-nginx -v 显示版本号

进入nginx

cd /usr/local/etc/nginx

下图为进入nginx文件夹下的文件内容

当进到这个目录下,我们就可以操作nginx了,接下来就列举一些非常非常有用的命令,多敲几遍,一定要记住

nginx常用命令

  • 启动nginx

    • nginx

    • 当你敲完nginx这5个键的时候,并没有任何反应,此时你只需访问localhost:8080(默认)即可

  • 关闭nginx

    • 如果出现下图情况,不要惊慌,是因为之前nginx被启动过了

    • 只需nginx -s stop,停止nginx服务

    • 然后再次启动nginx即可

  • 重启nginx

    • nginx -s reload

    • 每次修改完.conf文件就需要重启nginx

  • 检查配置

    • 检查修改的nginx.conf配置是否正确

    • nginx -t

    • 如果出现下面ok和successfull就代表正确了,其他的都不对

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

对于我们前端来说正常工作当中,倒是不需要过多的修改nginx的。我们之所以修改nginx配置,是为了做一些反向代理罢了

proxy_pass

nginx反向代理主要通过proxypass来配置,将你项目的开发机地址填写到proxypass后面,正常的格式为proxy_pass URL即可

server {

listen 80;

location / {

proxy_pass http://10.10.10.10:20186;

}

}

Upstream模块实现负载均衡

  • ip_hash指令

  • server指令

  • upstream指令及相关变量

上面写的三个指令,我们直接通过代码来一一分析

// 修改nginx.conf

worker_processes 1;

events {

worker_connections 1024;

}

http {

upstream firstdemo {

server 39.106.145.33;

server 47.93.6.93;

}

server {

listen 8080;

location / {

proxy_pass http://firstdemo;

}

}

}

上面修改的nginx.conf就是上图中花圈的那个文件,nginx配置的主要修改就在这里。化繁为简,把原本nginx.conf里的内容直接替换为上面的不到20行的代码了

既然不到20行,那就把里面对应的内容统统解释一下吧,有个了解就好

  • worker_processes

    • 工作进程数,和CPU核数相同

  • worker_connections

    • 每个进程允许的最大连接数

  • upstream模块

    • 负载均衡就靠它

    • 语法格式:upstream name {}

    • 里面写的两个server分别对应着不同的服务器

  • server模块

    • 实现反向代理

    • listen监督端口号

    • location / {}访问根路径

    • proxy_pass http://firstdemo,代理到firstdemo里两个服务器上

上面修改了nginx.conf之后,别忘了最重要的一步重启nginx

那么再次访问localhost:8080,会看到如下图页面

还有另一个页面

每次刷新都会访问不同的服务器,这样就做到了负载均衡处理

不过,更应该做到的是当用户第一次访问到其中一台服务器后,下次再访问的时候就直接访问该台服务器就好了,不用总变化了。那么就发挥了ip_hash的威力了

// 省略...

upstream firstdemo {

ip_hash;

server 39.106.145.33;

server 47.93.6.93;

}

ip_hash它的作用是如果第一次访问该服务器后就记录,之后再访问都是该服务器了,这样比如第一次访问是33服务器,那之后再访问也会分配为33服务器访问了

工作中的简单使用

在公司开发项目的时候,遇到设计,产品走查环节的时候,不能每次都让他们去配一个host,毕竟这样不友好,走查起来有麻烦。所以更应该给他们直观的感受,既给一个访问地址就可以看到样子

下面给大家看一下,我正常在公司时nginx做的反向代理配置,和咱们上面的如出一辙,只是加了一个server_name,用指定的域名去访问即可

server {

listen 80;

server_name chd.news.so.m.qss.test.so.com ;

auth_basic off;

location / {

proxy_pass http://10.10.10.10:20186;

proxy_set_header Host $host;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 60;

proxy_read_timeout 600;

proxy_send_timeout 600;

}

}

每次修改完nginx配置后不要忘记重启nginx才能生效,这样只需要访问chd.news.so.m.qss.test.so.com这个地址就可以查看我的开发环境,进行走查了。

这就是nginx最大的功能,反向代理我也接触的不是很多,毕竟不是专业运维出身,可比性差了很多。略知一二,也只是方便大家工作中使用吧,再次感谢大家的收看了,哈哈

❤️ 看完三件事

如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个小忙:

  1. 点个「在看」,让更多的人也能看到这篇内容(喜欢不点在看,都是耍流氓 -_-)

  2. 关注我的博客 https://github.com/SHERlocked93/blog,让我们成为长期关系

  3. 关注公众号「前端下午茶」,持续为你推送精选好文,也可以加我为好友,随时聊骚。

使用nginx负载均衡的webservice wsdl访问不到_谁说前端不用懂,Nginx 反向代理与负载均衡(超实用)...相关推荐

  1. 使用nginx负载均衡的webservice wsdl访问不到_面试官:关于负载均衡你了解多少

    面试官:关于负载均衡你了解多少,知道哪些常用框架? 问题分析: 工作中小编也会经常接触到 Nginx,比如美团的 Oceanus 框架,是一款 HTTP 服务治理框架,这个框架就是基于 Nginx和 ...

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

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

  3. 懂点 Nginx 反向代理与负载均衡,是面试加分项没有之一

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等 ...

  4. nginx反向代理、负载均衡、动态请求

    NGINX 反向代理 我想通过上一章如何测试Nginx的高性能,想必大家对于NGINX作为一个高性能的web服务器毫无异议:但是NGINX的功能绝不局限于简单的web服务器,NGINX在互联网扮演的角 ...

  5. Nginx之反向代理与负载均衡实现动静分离实战

    Nginx之反向代理与负载均衡实现动静分离实战 什么是反向代理与负载均衡 Nginx仅仅作为Nginx  proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果. 负载均衡指的是 ...

  6. nginx的反向代理及负载均衡

    查看内核版本号: uname  -r 查看Linux发行版本 :cat /etc/issue 或cat /etc/release 查看bash 版本 : bash  --version <?xm ...

  7. nginx反向代理相关 负载均衡及优化

    一.反向代理 1.1.upstream简介 nginx的upstream可以同时实现反向代理和负载均衡,目前upstream支持5种方式的分配 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端 ...

  8. nginx的反向代理以及负载均衡模块的使用

    内容: 1.何为代理 2.nginx的反向代理模块以及使用 3.nginx的负载均衡模块以及使用 一.何为代理 代理,由字面意思可以理解为代为服务的是意思. 代理服务技术是一门很古老的技术,是在互联网 ...

  9. Nginx-从零开始使用nginx实现反向代理及负载均衡

    文章目录 环境说明 安装Nginx 安装必须的依赖库 3个 源码安装 yum安装 安装nginx 启动Nginx 常用操作命令 使用非root用户启动nginx 搭建应用 Nginx 做反向代理 + ...

最新文章

  1. Silverlight OA源代码(Silverlight4+SQLServer2005)
  2. 农业物联网技术在温室大棚种植中的应用
  3. ZOJ3163【思维题】
  4. wx.navigateTo的url不生效的问题
  5. JVM内存区域(运行时数据区)划分
  6. 【深入JavaScript】3.JavaScript继承的实现总结
  7. java native关键字(java本地方法)
  8. minio在不同平台下的启动命令
  9. Java Number Tips
  10. C#调用非托管Dll
  11. Python人脸识别之——创建csv文件 create_csv.py 代码 Python3.7
  12. 74HC595芯片级联的测试万能代码
  13. linux c第四天———gcc、gdb、指针、大小端存储
  14. 计算机语言英语作文80词,春节英语作文80字【带中文翻译】-太平洋电脑网
  15. 查询省会python
  16. mysql cloud ha_MySQL HA
  17. Kali系统安装搜狗输入法
  18. 死亡搁浅服务器不稳定ps4,《死亡搁浅》实机画面碉堡了 小岛秀夫亲晒
  19. 计算机pe开启网络模块,任意WINPE改造成PXE网启工具-支持UEFI+bios双启动
  20. 中国能不能写出操作系统?

热门文章

  1. Dubbo学习总结(7)——Dubbo不常用功能总结
  2. Spring MVC学习总结(17)——SpringMVC之接口规范与Controller规范
  3. Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
  4. java中md5加密和解密_如何在java中实现md5加密和解密
  5. .git目录文件过大
  6. GoF的23种设计模式之创建型模式的特点和分类
  7. [VUE系列二]vue官方文档总结和整理
  8. iOS-单例设计模式
  9. Java 实现图片合成
  10. 【概率论】对弈输光模型,ruin model