千家信息网

部署前后端分离式nginx配置的完整步骤

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,前言老生常谈了,这里谈谈我的理解的前后端分离,简单的分离无非是将原来mvc的view层剥离出来,独立一个成为Servlet服务,Servlet之间依靠http连通。这里的view Servlet容器可
千家信息网最后更新 2026年11月02日部署前后端分离式nginx配置的完整步骤

前言

老生常谈了,这里谈谈我的理解的前后端分离,简单的分离无非是将原来mvc的view层剥离出来,独立一个成为Servlet服务,Servlet之间依靠http连通。这里的view Servlet容器可以是任意一种服务端服务,Tomcat、Apache、Nginx、IIS,都可以。这里以常用的Nginx为例子做简单的介绍。

需求分析

先来一波需求分析。

  • 单项目
    • 单项目指的是一台服务器部署一个前端服务,使www.xxx.com => index.html的单一指向。
  • 多项目
    • 多项目指的是一台服务器部署多个前端服务,使www.xxx.com/a => a.html,www.xxx.com/b => b.html等多指向。
  • 请求代理。
  • cookie domain重写。
  • cookie path 重写。

提示:这里做好写conf.d/*.conf,这样配置可以分离处理。

公共配置

server{ listen 80; # 配置端口 server_name _; # 配置域名 charset utf-8; # 编码 access_log /xxx/log/nginx_access.log main; # 成功日志 error_log /xxx/log/nginx_error.log error; # 错误日志 index index.html; # 查找文件顺序 set $root /xxx/nginx/; # 变量设置,设置公共路径  # 其余location}

请手动去/xxx/log/nginx_access.log和/xxx/log/nginx_error.log下新建对应文件。可能会执行nginx reload第一次执行时会报错。

set的$root路径为绝对路径,access_log和error_log同样都是绝对路径。

单项目配置

目录结构

nginx|----- index.html|----- user.html

location配置

location / {        root $root;}

好了最简单的基于根路径配置就这样好了,这里无非是通过location配置一条路径,然后指向到$root文件夹下的index.html这个文件下。

多项目配置

目录结构

nginx|----- a    |----- index.html|----- b    |----- index.html

多条location配置

location ^~ /a {  alias $root/a;}location ^~ /b {  alias $root/b;}location / {  root $root;}

跟单项目唯一的不同点在于,root和alias的区别,root指的是文件的绝对匹配路径,而alias则是相对匹配。root可以再http、server、location中配置,而alias只能在location中配置。这我还加入的正则^~,当匹配/a或者/b时,不管location的路径是什么,资源的真实路径一定是都是 alias 指定的路径。这样的我就能让/a、/b拥有匹配的到路径之后,拥有跳转固定路径,这在spa式的前端项目非常有用的,因为其实核心文件只有一个index.html文件(资源文件另说)。这样我永远跳转index.html就能保证浏览器手动刷新的时候,不会根据root路径去查找服务器其他路径的资源。然后设置spa的根路径和 /b必须是匹配的。

为什么会有这种需求?前端是轻便的,我们为了达到节约服务器与聚合同类型业务的时候,就会使用到这种机制。就像希望admin.xxxx.com/a => 运营管理台、admin.xxxx.com/b => erp管理台一样。所有admin这个域名下我们只要切出子路径即可。简单轻便。

请求转发

location ^~ /api {  proxy_pass http://api.xxx.com/;}

这里就特别简单了,我通过正则匹配/api这个请求,通过proxy_pass属性,将请求定向到http://api.xxx.com。即可

修改cookie domain

有时候处于安全考虑,我们会设置一定的cookie的domain属性这是对于nginx转发来说就很不友好了。当然也是有解决手段的,也很简单。

location {  proxy_cookie_domain <本域的domain> <想修改的domain>;}

修改cookie path

当我们转发回api接口时,有时候api域名拿不到cookie,除了domain还有cookie path的可能性。当然解决方案也很简单

location {  proxy_cookie_path <本域的路径> <想修改的路径>;}

后续优化

这只是nginx配置最简单的一个例子,还有,开启gzip、缓存设置、合并资源请求的插件、设置50x,40x页面、判断移动端,pc端跳转等配置,nginx还是很强大的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

路径 配置 服务 文件 项目 前端 服务器 资源 域名 指向 需求 轻便 例子 内容 属性 手动 日志 时候 有时候 正则 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 互联网科技有限公司图片 麻工互联网科技 互联网络科技有限公司 互联网 卓越科技 银优互联网科技有限公司 上游互联网科技 一五八零互联网科技 互联网科技股午盘股票涨跌 顺网科技2021年互联网排名 老年人脱离互联网科技的作文 互联网科技公司实习生 江阴互联网智能科技产品进口 互联网与医疗科技 亳州好赞互联网科技有限公司 佛山市拉法互联网科技有限公司 无锡工业互联网科技有限公司 江苏苏星互联网科技有限公司 互联网科技实习生岗位 富国互联网金融科技混合基金 上海睿民互联网科技有限公司 中关村互联网 科技集团 涨乐互联网科技 朗新科技与工业互联网 互联网为啥属于高科技 互联网科技大奖都有哪些公司 深圳艾果互联网通讯科技 工业互联网山东科技大学 抖集互联网科技技术咨询 北京天晋互联网科技有限公司
0