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


Posted in Servers onMarch 31, 2021

前后端分离项目,前后端共用一个域名。通过域名后的 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/dist/;
 }

 # 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 访问前端页面。

例如:

访问文章列表接口

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

访问上传的图片

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

访问前端首页

GET https://demo.com/

访问文章页面

GET https://demo.com/posts

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

总结

到此这篇关于Nginx代理同域名前后端分离项目的文章就介绍到这了,更多相关Nginx代理同域名前后端分离项目内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx常用命令放入shell脚本详解
Mar 31 Servers
Nginx配置并兼容HTTP实现代码解析
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 Servers
nginx的zabbix 5.0安装部署的方法步骤
Jul 16 Servers
nginx反向代理配置去除前缀案例教程
Jul 26 Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 Servers
Minikube搭建Kubernetes集群
Mar 31 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
shell进度条追踪指令执行时间的场景分析
Jun 16 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 Servers
Linux安装Docker详细教程
Jul 07 Servers
Nginx+SpringBoot实现负载均衡的示例
win10安装配置nginx的过程
Filebeat 采集 Nginx 日志的方法
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
You might like
一个php作的文本留言本的例子(五)
2006/10/09 PHP
我的论坛源代码(六)
2006/10/09 PHP
php获取地址栏信息的代码
2008/10/08 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
js获取div高度的代码
2008/08/09 Javascript
js 省地市级联选择
2010/02/07 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jQuery 选择器详解
2015/01/19 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Python实现ping指定IP的示例
2018/06/04 Python
Python格式化日期时间操作示例
2018/06/28 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
StubHub德国:购买和出售门票
2017/09/06 全球购物
秘书专业自荐信范文
2013/12/26 职场文书
校园安全教育广播稿
2014/02/17 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
2014年党支部学习材料
2014/05/19 职场文书
525心理活动总结
2014/07/04 职场文书
高三英语复习计划
2015/01/19 职场文书
食品质检员岗位职责
2015/04/08 职场文书
朋友离别感言
2015/08/04 职场文书