下图是我们要设计的服务器集群结构,所有的请求都经过Nginx,如果是静态资源的请求,则直接访问Ngnix的本地磁盘(或者NAS),其余的动态资源请求均由Nginx转发到后端服务器。

OpenResty安装

Nginx官网提供源码,选择想要加载的模块,下载后需要手动编译。如果要增删模块,需要在编译阶段指定,比较复杂。推荐直接使用OpenResty框架,该框架已经将Nginx和LuaJIT的相关配置打包,且集成了大部分Nginx常用特性,比如反向代理、Redis等。
参考官网文档:
https://openresty.org/en/installation.html
按上述文档操作后,OpenResty会安装在/usr/local/openresty目录下。该目录下nginx/conf目录存放Ngnix的所有配置;ngnix/html目录放置Ngnix的html文件。

启动nginx

在/usr/local/openresty/nginx目录下,执行

sbin/nginx -c conf/nginx.conf

默认是后台加载启动的方式,会启动在conf/nginx.conf指定的端口。此时就可以通过浏览器访问了,可以看到Welcome to OpenResty页面。

按照我们之前的架构部署,当请求静态资源时,路由到本地磁盘路径;其余的所有请求都使用动态代理,访问后端server。

部署前端资源

打包前端资源上传到服务器。进入nginx目录下的html下,然后新建resources目录用于存放前端静态资源。
默认配置中,Ngnix会将所有路径的访问都转发到html路径。我们需要修改conf/nginx.conf,设置指向resources目录下的location可以访问对应的html下的静态资源文件。
将server中

location / {root html;index index.html index.htm
}

修改为

location /resources/ {alias /usr/local/openresty/nginx/html/resources/;index index.html index.htm
}

至此,我们的静态资源访问可以指向Ngnix对应的路径。

配置反向代理

修改conf/nginx.conf,设置upstream server,指定后端服务器的地址。
我的两台服务器地址分别为172.22.97.43、172.22.97.42。weight代表权重,我现在配置的轮循比例为1:1。

upstream backend_server {server 172.22.97.43 weight=1;server 172.22.97.42 weight=1;
}

刚才我们指定了静态资源的路由路径,除此之外所有请求我们都当做动态资源,在server中增加

location / {proxy_pass http://backend_server;proxy_set_header Host $http_host:$proxy_port;proxy_set_header X-Real_IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

开启tomcat access log

为了确保Nginx确实访问到了后端server,我们可以查看后端server的Tomcat日志。只需要在SpringBoot项目的配置文件中添加相关配置。在线上环境中,修改外挂配置文件即可。

server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.directory=/var/www/project/tomcat  ## 你的项目目录中新增/tomcat
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D

需要注意的配置

  1. 前端接入的超时时间一般需要大于反响代理的服务超时时间,因为数据流是通过nginx转发,若前端超时时间小于后端超时时间则会出现后端服务还未超时,前端就超时的情况。
  2. 配置长连接keepalive以解决网络建连的问题,提高路由性能。

ngnix配置反向代理相关推荐

  1. vue脚手架解决跨域问题-------配置反向代理

    vue脚手架解决跨域问题-------配置反向代理 参考文章: (1)vue脚手架解决跨域问题-------配置反向代理 (2)https://www.cnblogs.com/zbx-boke/p/9 ...

  2. deepin配置反向代理映射本地到公网

    这里我是用的小米球的免费ngrok  相信deepin的新用户在配置反向代理时,会感觉到一脸茫然,因为一开始我也是这样,但经过短暂的了解了deepin后,发现,其实与在Debian上配置并没有什么区别 ...

  3. 在IIS7中应用Application Request Routing配置反向代理

    配置反向代理软件.zip 开启Proxy项: 该设置表面只有HTTP_HOST为phpweb.leven.com.cn的URL才能通过该规则,如果您绑定了多个域名,可以根据多次增加或者通过正则表达式的 ...

  4. 用IIS配置反向代理

    https://natapp.cn/ http://blog.csdn.net/g2321514568/article/details/12406755 目标服务器:targetServer 配置反向 ...

  5. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  6. apache 反向代理_通过 Apache 与 Nginx 配置 AJP 配置反向代理

    ↑ 点击上面 "时代Java"关注我们, 关注新技术,学习新知识! 前言 目前,随着公有云的出现,一些大型的服务提供商将很多的基础服务以公有云的形式发布出来,而企业则可以使用这些基 ...

  7. 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理

    上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...

  8. nginx配置反向代理和负载均衡完结篇

    具体安装配置参考之前的文章 https://blog.csdn.net/weixin_44001965/article/details/102723855 文章目录 一,nginx操作的常用命令 ng ...

  9. Nginx1.6.2版本安装遇到的坑以及配置反向代理

    Nginx1.6.2版本安装遇到的坑以及配置反向代理 本文基于https://www.runoob.com/linux/nginx-install-setup.html教程进行安装,安装过程中和使用中 ...

最新文章

  1. TOP命令 %Cpu(s)解读 CPU状态信息us,sy,ni,id,wa,hi,si,st含义
  2. @PropertySource读取外部配置文件中的k-v保存到运行的环境变量中,加载完微博的配置文件以后使用${}取配置文件中的键值
  3. AI可以在游戏里称霸,但是解决现实问题太难了
  4. 如何利用数据仓库优化数据分析?
  5. Web应用渗透测试框架Arachni
  6. IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的......
  7. moxy json介绍_MOXy的对象图和动态JAXB
  8. linux内核启动流程x86,linux内核-x86_32位内核启动流程
  9. 【读书笔记】2_增强学习中的Q-Learning
  10. 启动web项目卡在Initializing Spring root WebApplicationContext不动
  11. 芝加哥大学终身教授:自然科学与社会科学的真正区别
  12. 10 EDA技术实用教程【时序电路Verilog设计1】
  13. 第十届蓝桥杯B组C/C++省赛编程题题目及答案解析
  14. web of science,SSCI索引,带你入门!
  15. Linux下载安装Binutils工具集
  16. 手机IMSI号码编码规则表
  17. 2020 年软件设计师考试上午真题
  18. 计算机管理下的打印机参数设置,提高办公效率 11种方法设置打印参数
  19. 图像表格实线和虚线检测
  20. 关于符号Symbol第二篇

热门文章

  1. 字体过多导致样式变形
  2. 4am永远 鼠标按键设置_4AM称霸PCL和PEL,绝地求生与和平精英的双端冠军
  3. (翻译)心理定格(Framing)
  4. 计算机毕业设计JavaSEOUL设计师品牌代购商城(源码+系统+mysql数据库+lw文档)
  5. msdn library january 2001 下载审明
  6. 安卓Camera2悬浮窗录像
  7. 计算机专业看重CPU还是显卡,电脑是CPU重要还是显卡重要? 你选择对了吗?
  8. 用户头像上传之 jQuery+ajax+php+预处理
  9. 遥感地物光谱知识整理
  10. 【GO语言学习】使用GO语言输出Emoji表情