官网使用Nginx实现动静分离

2024-05-29 06:08

本文主要是介绍官网使用Nginx实现动静分离,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Nginx 是俄罗斯人 伊戈尔·赛索耶夫( Igor Sysoev)开发的 一个 HTTP 和反向代理服务,邮件代理服务器,此外还可以作为 TCP/UDP 代理服务器。 仅 2021 年 7月里 Nginx 代理了市场 22.57% 的站点。这还不包括很多内网使用的站点,以及淘宝基于 Nginx 开发的 Tengine。再次致敬作者!

Nginx 作为 HTTP 反向代理服务器,主要用途之一就是实现网站的动静分离。

刚好公司上个月开发新版官网,和另一个同事一起完成,我主导开发,技术栈是 springboot + mybatisPlus +freemarker +  ElasticSearch +Nginx ,关于具体的实现思路,如果有人感兴趣的话,后续可以专门写一篇文章。

话不多说,直接先上图:

简单解释下:

1. 浏览器访问官网域名会跳转到 /usr/share/nginx/html下的index.html

2.  在html 文件会通过异步请求发送 /back/ 开头的url 请求后台接口

下面根据上图的需求,配置 nginx.conf, 注意在 http 模块中添加如下配置:

server {listen       80;# 配置你的域名server_name  www.xxx.com;# 默认路由到 /usr/share/nginx/html 下的 index.htmllocation / {root   /usr/share/nginx/html;index  index.html index.htm;  }# 请求 /back 开头的接口时会代理到后台服务location /back/ {# 后台服务器,一般配成内网域名,或者 ip:端口proxy_pass   http://backend.website.com;}
}

这里其实重点用的还是 location 指令, 可以参考之前的文章《Nginx 搭建文件服务器》。这里涉及到一个常用的指令proxy_pass,下面详细介绍下该指令:

# proxy_pass, 使用语法:proxy_pass URL;
# 如果proxy_pass加了 URI, location 中的URI,会被完全替代
# http://xxxxxx/name/hello =>  http://127.0.0.1/hello;
location /name/ {proxy_pass http://127.0.0.1:8080/;
}#  如果proxy_pass没有 URI, location 中的URI,会被追加
# http://xxxxxx/name/path/hello =>  http://127.0.0.1/name/path/hello
location /some/path/ {proxy_pass http://127.0.0.1:8080;
}#  如果proxy_pass 主机名后加了$request_uri, location 中的URI,会被追加
# http://xxxxxx/name/path1/hello1 =>  http://127.0.0.1/name/path1/hello1
location /name/ {proxy_pass http://127.0.0.1:8080$request_uri;
}# 使用 rewrite 指令时,proxy_pass 后的uri(如果有的话)会被 rewrite后的新uri 直接替换
# http://xxxxxx/name/path2/hello2 =>  http://127.0.0.1/name/path2/hello2
location /name/ {rewrite    /name/([^/]+)  /users?name=$1 break;proxy_pass http://127.0.0.1:8080;# 下面的写法,uri /会被替换,所以也能正常跳转# proxy_pass http://127.0.0.1/;
}

根据大家的反馈,后面会考虑分享Nginx的另个一重要功能:负载均衡。


 如果觉得还不错的话,关注、分享、在看(关注不会走丢~), 原创不易,且看且珍惜~

 

这篇关于官网使用Nginx实现动静分离的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1012853

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现