前言

在后端开发期间,会为前端或者平台上提供API服务接口,这时、我们看完今天的文章可以详细了解到Nginx反向代理到后端服务上的过程。

Nginx:

是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。可以做反向代理、正向代理,静态服务器等。

负载均衡算法:

upstrem支持4种负载均衡调度算法:

  1. 轮询(weight):每个请求按时间顺序逐一分配到不同的后端服务器上,默认为轮询方式
  2. url_hash:按访问URL的Hash来分配请求
  3. ip_hash:按访问IP的Hash来分配请求,如果用户的ip固定不变,也同时可以解决session的问题
  4. fair:根据页面大小和加载时间智能的分配请求,响应时间短的优先分配

反向代理:

客户端-->代理<-->服务端

举例说明:

比如在北京租房子,我们就好比客户端,我爱我家中介好比代理,实际上我们不一定能看到房主(服务端)

我们在租房子的过程中,知道中介是谁,但是不知道房主是谁。

服务器三台:

  1. server 192.168.0.1
  2. server 192.168.0.2
  3. server 192.168.0.3

webApi服务:

Go语言基于gin框架开发的HTTP服务,服务启动监听10080端口号

/usr/local/brand/bin/webApi --config-dir=/usr/local/webApi/config api

Nginx配置:

# 进程数,一般情况下与CPU个数一致

# 进程数,一般情况下与CPU个数一致
worker_processes  24;events {use epoll;#单个worker process进程的最大并发链接数worker_connections  65535;
}http {# 其他配置省略include vhosts/api.test.com.conf;
}

api.test.com.conf配置:

server_name为api.test.com,监听80端口,将所有请求转发到http://192.168.0.*:10080下面

cat /usr/local/nginx/conf/vhost/api.test.com.conf# 配置负载均衡,均衡负责轮询的方式进行负载
upstream api.test.com {# server 要代理到的服务器节点,weight是轮询的权重server 192.168.0.1:10080 weight=1;server 192.168.0.2:10080 weight=1;server 192.168.0.3:10080 weight=1;
}server {listen       80;server_name  api.test.com;access_log  /data/log/nginx/api.test.com.access.log;error_log  /data/log/nginx/api.test.com.error.log;location / {# proxy_pass 要注意如何url以"/"结尾,则表示绝对路径,否则表示相对路径proxy_pass http://api.test.com;}
}

我们请求后返回:http://api.test.com/d/a?page=1&page_size=20,对应的结果有5条记录,这个时候已经说明请求是成功的。

Nginx访问日志如下:

==> /data/log/nginx/api.test.com.access.log <==
192.168.0.123 - - [22/Apr/2020:22:01:01 +0800] "GET /d/a?page=1&page_size=20 HTTP/1.1" 200 656 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36"

已经成功的访问到了我们的Nginx+Go服务。

总结

本文中实践了Nginx代理到后端Go服务的知识,部署简单,实用。

Nginx反向代理+Go服务实践相关推荐

  1. Nginx反向代理Redis服务

    Nginx反向代理Redis服务 Nginx代理Redis 第一步:redis 配置及启动 vim redis.conf port 6379 # bind 127.0.0.1 daemonize ye ...

  2. Nginx反向代理WebSocket服务连接报错:WebSocket connection to “wssxxxxxx“ failed

    最近使用 node.js 搭建 WebSocket 服务,在本地测试 connection 都是正常,于是部署到 Linux 服务上,需要用 Nginx 来反向代理 WebSocket 服务.浏览器控 ...

  3. nginx 反向代理 apache 服务

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...

  4. Tomcat系列之服务器的基本配置及Nginx反向代理tomcat服务

    大纲 一.Tomcat 基本配置 1.为Tomcat提供SysV脚本 2.catalina 脚本讲解 3.telnet 登录管理Tomcat 4.配置Tomcat虚拟主机 5.Tomcat图形管理接口 ...

  5. nginx反向代理实现指定接口访问指定机器

    location表达式类型 location = 表示精确匹配 location ^~ 表示uri以指定字符或字符串开头 location ~ 表示区分大小写的正则匹配 location ~* 表示不 ...

  6. Nginx反向代理与负载均衡应用实践(二)

    Nginx反向代理与负载均衡应用实践(二) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ...

  7. Nginx反向代理实践

    ##前言 上一篇解释了Nginx的反向代理模块的用法,本篇主要以实践为主.本次演示并为实现Nginx高可用.仅以演示Nginx反向代理为准. ##实验环境: 三台服务器一台服务器作为前端反向代理,剩下 ...

  8. Nginx反向代理与负载均衡应用实践

    本链接转载自:https://www.cnblogs.com/chensiqiqi/p/9162926.html 仅供自学使用. 1.1 集群简介 简单地说,集群就是指一组(若干个)相互独立的计算机, ...

  9. nginx 反向代理与负载均衡应用实践

    集群介绍 集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器.这些服务器之间可以彼此通信,协同向 ...

最新文章

  1. VS Code关联vivado并安装Verilog插件
  2. Android之打造可定制的全场秒杀倒计时控件
  3. 第四次游戏革命:全息游戏 from:http://www.cnblogs.com/alamiye010/archive/2012/08/15/2640881.html...
  4. HDU - 3709 Balanced Number(数位dp)
  5. Spark 入门系列-简介以及生态
  6. 最具价值中国品牌百强榜单发布 小米首次入围排名第11位
  7. linux跳转乌班图服务器,Linux-Ubuntu环境安装Nginx和配置二级域名跳转
  8. Linux下通过 rm -f 删除大量文件时报错:Argument list too long
  9. MyBatis理解与掌握(输入与输出)
  10. braft中AppendEntries逻辑
  11. python判断性别程序设计_python基础15 ---面像对象的程序设计
  12. mac识别hid键盘_Ubuntu Mac 键盘设置F1-F12功能键
  13. .net中SessionState相关配置
  14. 基于HAL库使用cubemx配置,驱动MAX30102血氧传感器基础历程
  15. 微信小程序 实现换肤功能
  16. V831——车牌识别
  17. 八、在创业公司工作的心理历程
  18. 【MySQL数据库】一约束
  19. 关于Android Https网络连接失败奇葩问题 ExtCertPathValidatorException
  20. python selenium下载对话框_Selenium+Python:下载文件(Firefox 和 Chrome)

热门文章

  1. cpu风扇转速慢_cpu风扇简介有哪些?cpu风扇选购技巧介绍_
  2. java的spinner_java中的spinner | 学步园
  3. websocket服务器响应头,从服务器发送响应握手后,websocket.onopen不会触发
  4. IPhone鸿蒙系统,iPhone 13外观再次确认,鸿蒙系统也将临世,神仙又打架
  5. VMware + CentOS 网络设置为NAT模式
  6. python 外部程序 交互_使用Python与其他程序交互
  7. Squid-4.1(最新)安装及构建代理服务器
  8. 学习《apache源代码全景分析》之模块化体系结构摘录
  9. 图的存储以及深度优先以及广度优先遍历
  10. HadoopHelper使用说明