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

news2025/1/11 1:10:57

前后端分离项目,前后端共用一个域名。通过域名后的 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.coloradmin.cn/o/2274626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++中的表达式

文章目录 算数操作符位操作符bitset对象或整型值的使用将位移操作符用作IO 赋值操作符赋值操作符的右结合性赋值操作具有低优先级 自增和自减操作符条件操作符sizeof操作符优先级new和delete表达式类型转换何时发生隐式转换显示转换旧式强制类型转换 C中的表达式由一个或多个操…

WebSocket 测试入门篇

Websocket 是一种用于 H5 浏览器的实时通讯协议,可以做到数据的实时推送,可适用于广泛的工作环境,例如客服系统、物联网数据传输系统, 基础介绍 我们平常接触最多的是 http 协议的接口,http 协议是请求与响应的模式&…

海外招聘丨 弗拉瑞克商学院—博士研究员:智能家居技术业务和能源管理中的数据分析和人工智能

雇主简介 Vlerick 是一所领先的国际商学院……与众不同。是的,我们提供完全认可的世界一流教育课程,将理论知识和实践见解完美结合。是的,我们是一家领先的学术机构,拥有创新和独立研究的悠久传统。是的,我们拥有国际…

NUTTX移植到STM32

STM32移植NUTTX 1. Ubuntu下搭建开发环境1.1 先决条件1.2 下载 NuttX1.3 使用Make 进行编译1.4 烧录运行 2.通过NUTTX点亮LED2.1 部署操作系统2.2 修改配置文件2.3 编译运行程序 开发板:DshanMCUF407 官方开发文档:安装 — NuttX latest 文档 参考文档&…

Redis 优化秒杀(异步秒杀)

目录 为什么需要异步秒杀 异步优化的核心逻辑是什么? 阻塞队列的特点是什么? Lua脚本在这里的作用是什么? 异步调用创建订单的具体逻辑是什么? 为什么要用代理对象proxy调用createVoucherOrder方法? 对于代码的详细…

Python 中的错误处理与调试技巧

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…

关于腾讯4K算法搭建使用

准备国内服务器一台,轻量服务器请尽量开全端口安装linux,centos7.6-7.9系统,记住纯净系统,然后安装宝塔宝塔安装环境为nginx1.24,7.2(PHP版本没有要求),Mysql5.7(没有要求) 准备活动完毕!!! 上传…

工艺参数优化、工程设计优化!GRNN神经网络+NSGAII多目标优化算法(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GRNN神经网络NSGAII多目标优化算法,工艺参数优化、工程设计优化(Matlab完整源码和数据) 多目标优化是指在优化问题中同时考虑多个目标的优化过程。在多目标优化中,通…

【Rust自学】11.6. 控制测试运行:并行和串行(连续执行)测试

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.6.1. 控制测试的运行方式 cargo test和cargo run一样,cargo test也会编译代…

nginx负载均衡-基于端口的负载均衡(一)

注意: (1) 做负载均衡技术至少需要三台服务器:一台独立的负载均衡器,两台web服务器做集群 一、nginx分别代理后端web1 和 web2的三台虚拟主机 1、web1(nginx-10.0.0.7)配置基于端口的虚拟主机 [rootOldboy extra]# …

DDcGAN_多分辨率图像融合的双鉴别条件生成对抗网络_y译文马佳义

摘要: 在本文中,我们提出了一种新的端到端模型,称为双鉴别条件生成对抗网络(DDcGAN),用于融合不同分辨率的红外和可见光图像。我们的方法建立了一个生成器和两个鉴别器之间的对抗博弈。生成器的目的是基于特…

【C++/控制台】2048小游戏

源代码&#xff1a; #include <iostream> #include <windows.h> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h>// #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME)…

【Rust自学】11.5. 在测试中使用Result<T, E>

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.5.1. 测试函数返回值为Result枚举 到目前为止&#xff0c;测试运行失败的原因都是因为触…

最新版IDEA新建web项目--小白也能看懂

引言&#xff1a; 此方法适用于 IntelliJ IDEA 2024.1.4 最新版本。 我最初使用的是 Tomcat 8.0.23 版本&#xff0c;搭配 JDK 17。由于 Tomcat 8.0.23 使用了已经被弃用的 JVM 参数&#xff0c;故将 Tomcat 版本更换为 10.1.1。 如果你使用 JDK 17&#xff0c;建议使用 Tom…

ue5玩家角色添加武器。切换武器位置,手上武器放到背上。演示一下人体插槽和武器的连接。仅仅演示,实际项目不是这么用的

把第一人称资源包导进来 这就是我们枪的骨骼网格体 我们找到这个骨骼 右手添加插槽 取个名字 因为武器上也有动画&#xff0c;所有武器单独写个蓝图类 新建一个蓝图类 BP_Weapon 把枪的蓝图拖到人的静态网格体下&#xff0c;成为一个部分 选中BP_Weapon的父类套接字…

微信小程序防止重复点击事件

直接写在app.wpy里面&#xff0c;全局可以调用 // 防止重复点击事件preventActive(fn) {const self this;if (this.globalData.PageActive) {this.globalData.PageActive false;if (fn) fn();setTimeout(() > {self.globalData.PageActive true;}, 3000); //设置该时间内…

Docker入门之docker基本命令

Docker入门之docker基本命令 官方网站&#xff1a;https://www.docker.com/ 1. 拉取官方镜像并创建容器&#xff08;以redis为例&#xff09; 拉取官方镜像 docker pull redis# 如果不需要添加到自定义网络使用这个命令&#xff0c;如需要&#xff0c;直接看第二步 docker r…

SQL Server中可以通过扩展事件来自动抓取阻塞

在SQL Server中可以通过扩展事件来自动抓取阻塞&#xff0c;以下是详细流程&#xff1a; 开启阻塞跟踪配置&#xff1a; • 执行以下SQL语句来启用相关配置&#xff1a; EXEC sp_configureshow advanced options, 1; RECONFIGURE; EXEC sp_configure blocked process thresh…

【VBA】【EXCEL】将某列内容横向粘贴到指定行

Sub CopyRowToColumn()On Error GoTo ErrorHandler 添加错误处理Application.ScreenUpdating FalseApplication.Calculation xlCalculationManualApplication.EnableEvents False 禁用事件处理Dim lastCol As LongDim lastRow As LongDim i As Long, colCount As LongDim …

基于机器学习的故障诊断(入门向)

一、原始信号的特征提取 1.EMD经验模态分解的作用 信号分析&#xff1a;EMD可以将信号分解为多个IMFs&#xff0c;每个IMF代表信号中的一个特定频率和幅度调制的成分。这使得EMD能够提供对信号的时频特征进行分析的能力&#xff08;特征提取用到的&#xff09;。信号去噪&…