Nginx代理同域名前后端分离项目的完整步骤

前后端分离项目,前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。

以 vue + php 项目为例。直接上 server 模块的 nginx 配置。

server{
listen 80;
#listen [::]:80 default_server ipv6only=on;
server_name demo.com;#二配置项目域名
index index.html index.htm index.php;
1.转给前端处理
location{
前端打包后的静态目录
alias /home/wwwroot/default/vue-demo/disst/
}
#2.转给后端处理
location /api/ {
try files $uri Şuri/ /index.php?$query_string;
}
#3.最终php在这里转给fpm
location ~ [^/]\.php(/|$){
后端项目目录
root /home/wwwroot/default/demo/public/;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
#4.处理后端的静态资源
location /public/ {
alias /home/wwwroot/default/demo/public/uploads/;
#error_page 404 /404.html;
access_log /home/wwwlogs/access.log main;
}

简单解释

  • 当域名后存在 /api/ 前缀时,将转给后端处理;
  • 当域名后存在 /uploads/ 前缀时,访问后端的静态资源。
  • 由于 location 精准匹配的原则,除以上之外的访问都会被转到第一处 location 访问前端页面。

例如:

访问文章列表接口

1

GET https://demo.com/api/posts

访问上传的图片

1

GET https://demo.com/uploads/xxx.jpg

访问前端首页

1

GET https://demo.com/

访问文章页面

1

GET https://demo.com/posts

PS:alias 路径末尾一定要有 / 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1369.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

73.矩阵置零 python

矩阵置零 题目题目描述示例 1:示例 2:提示: 题解思路分析Python 实现代码代码解释提交结果 题目 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例…

【深度学习】通俗理解偏差(Bias)与方差(Variance)

在统计学习中,我们通常使用方差与偏差来衡量一个模型 1. 方差与偏差的概念 偏差(Bais): 预测值和真实值之间的误差 方差(Variance): 预测值之间的离散程度 低偏差低方差、高偏差低方差: 图中每个点表示同一个模型每次采样出不同…

Git学习记录

针对各个项目的gitignore文件示例 github/gitignore: A collection of useful .gitignore templates 忽略文件 文件 .gitignore 的格式规范如下: • 所有空行或者以 # 开头的行都会被 Git 忽略。 • 可以使用标准的 glob 模式匹配。 • 匹配模式…

自然语言转 SQL:通过 One API 将 llama3 模型部署在 Bytebase SQL 编辑器

使用 Open AI 兼容的 API,可以在 Bytebase SQL 编辑器中使用自然语言查询数据库。 出于数据安全的考虑,私有部署大语言模型是一个较好的选择 – 本文选择功能强大的开源模型 llama3。 由于 OpenAI 默认阻止出站流量,为了简化网络配置&#…

Cookie和Session

会话: 有状态会话: 客户端知道发起请求的是谁 无状态会话: 不知道发起请求的是谁 只知道有请求 http是无状态请求 保存会话信息的两种技术: 可以通过Cookie和Session储存会话信息 cookie:客户端技术 信心存…

ImportError: attempted relative import with no known parent package 报错的解决!

本人在做调用超级鹰API解决点触验证码时,两次出现本报错。研究后解决,步骤如下:(注意:如果项目目录结构简单且无中文目录,直接使用绝对路径即可解决!!!) 1.项…

介绍下不同语言的异常处理机制

Golang 在Go语言中,有两种用于处于异常的机制,分别是error和panic; panic panic 是 Go 中处理异常情况的机制,用于表示程序遇到了无法恢复的错误,需要终止执行。 使用场景 程序出现严重的不符合预期的问题&#x…

使用gtsam添加OrientedPlane3Factor平面约束因子

在基于地面约束的SLAM优化中,已知的地面信息(如 plan.pcd 文件中的地面模型)可以用作一个先验约束,以帮助优化位姿估计。具体而言,这个过程涉及将地面模型和每个帧的位姿结合,以创建一个因子模型&#xff0…

Cython全教程2 多种定义方式

—— 本篇文章,主要讲述Cython中的四种定义关键字 全教程2 多种定义方式: 在Cython中,关于定义的关键字有四个,分别是: cdef、def、cpdef、DEF 一、cdef定义关键字 顾名思义,cdef关键字定义的是一个C函数…

WINFORM - DevExpress -> DevExpress总结[安装、案例]

安装devexpress软件 路径尽量不换,后面破解不容易出问题 vs工具箱添加控件例如: ①使用控制台进入DevExpress安装目录: cd C:\Program Files (x86)\DevExpress 20.1\Components\Tools ②添加DevExpress控件: ToolboxCreator.exe/ini:toolboxcreator…

primitive 的 Appearance编写着色器材质

import { nextTick, onMounted, ref } from vue import * as Cesium from cesium import gsap from gsaponMounted(() > { ... })// 1、创建矩形几何体,Cesium.RectangleGeometry:几何体,Rectangle:矩形 let rectGeometry new…

《JavaWeb开发-javascript基础》

文章目录 《JavaWeb开发-javascript基础》1.javascript 引入方式2.JS-基础语法-书写语法2.1 书写语法2.2 输出语句 3.JS-基础语法-变量4.JS-基础语法-数据类型&运算符4.1 数据类型4.2 运算符4.3 数据类型转换 5. JS-函数6. JS-对象-Array数组7. JS-对象-String字符串8. JS-…

从CentOS到龙蜥:企业级Linux迁移实践记录(龙蜥开局)

引言: 在我们之前的文章中,我们详细探讨了从CentOS迁移到龙蜥操作系统的基本过程和考虑因素。今天,我们将继续这个系列,重点关注龙蜥系统的实际应用——特别是常用软件的安装和配置。 龙蜥操作系统(OpenAnolis&#…

【python基础——异常BUG】

什么是异常(BUG) 检测到错误,py编译器无法继续执行,反而出现错误提示 如果遇到错误能继续执行,那么就捕获(try) 1.得到异常:try的执行,try内只可以捕获一个异常 2.预案执行:except后面的语句 3.传入异常:except … as uestcprint(uestc) 4.没有异常:else… 5.鉴定完毕,收尾的语…

MySQL的安装

MySQL典型的关系型数据库(RDBMS):oracle、MySQL、SqlServer MySQL的版本 5.5~5.7、8.0 MySQL的安装和配置 下载地址: https://downloads.mysql.com/archives/community/ 安装包 (x86, 64-bit), MSI Installer 执行下一步即…

跨境电商领域云手机之选:亚矩阵云手机的卓越优势

在跨境电商蓬勃发展的当下,云手机已成为众多企业拓展海外市场的得力助手。亚矩阵云手机凭借其独特优势,在竞争激烈的云手机市场中崭露头角。不过,鉴于市场上云手机服务供应商繁多,企业在抉择时需对诸多要素予以审慎考量。 跨境电商…

【论文阅读】MAMBA系列学习

Mamba code:state-spaces/mamba: Mamba SSM architecture paper:https://arxiv.org/abs/2312.00752 背景 研究问题:如何在保持线性时间复杂度的同时,提升序列建模的性能,特别是在处理长序列和密集数据(如…

Java100道面试题

1.JVM内存结构 1. 方法区(Method Area) 方法区是JVM内存结构的一部分,用于存放类的相关信息,包括: 类的结构(字段、方法、常量池等)。字段和方法的描述,如名称、类型、访问修饰符…

【华为云开发者学堂】基于华为云 CodeArts CCE 开发微服务电商平台

实验目的 通过完成本实验,在 CodeArts 平台完成基于微服务的应用开发,构建和部署。 ● 理解微服务应用架构和微服务模块组件 ● 掌握 CCE 平台创建基于公共镜像的应用的操作 ● 掌握 CodeArts 平台编译构建微服务应用的操作 ● 掌握 CodeArts 平台部署微…

C#学习笔记 --- 简单应用

1.operator 运算符重载:使自定义类可以当做操作数一样进行使用。规则自己定。 2.partial 分部类: 同名方法写在不同位置,可以当成一个类使用。 3.索引器:使自定义类可以像数组一样通过索引值 访问到对应的数据。 4.params 数…