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中break与last的区别详析
Mar 31 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Nginx虚拟主机的搭建的实现步骤
Jan 18 Servers
nginx负载功能+nfs服务器功能解析
Feb 28 Servers
Apache Hudi集成Spark SQL操作hide表
Mar 31 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
IIS服务器中设置HTTP重定向访问HTTPS
Apr 29 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
Nginx静态压缩和代码压缩提高访问速度详解
May 30 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
windows系统安装配置nginx环境
Jun 28 Servers
Nginx如何获取自定义请求header头和URL参数详解
Jul 23 Servers
Nginx+SpringBoot实现负载均衡的示例
win10安装配置nginx的过程
Filebeat 采集 Nginx 日志的方法
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
You might like
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
vue mounted组件的使用
2018/06/18 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
Python读写文件方法总结
2015/06/09 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
国际贸易实训报告
2014/11/05 职场文书
接待员岗位职责
2015/02/13 职场文书
郭明义电影观后感
2015/06/08 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
java实现web实时消息推送的七种方案
2022/07/23 Java/Android