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优化服务之网页压缩的实现方法
Mar 31 Servers
提升Nginx性能的一些建议
Mar 31 Servers
Nginx如何配置Http、Https、WS、WSS的方法步骤
May 11 Servers
图文详解Nginx版本平滑升级方案
Sep 15 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
详解ZABBIX监控ESXI主机的问题
Jun 21 Servers
Linux下搭建SFTP服务器的命令详解
Jun 25 Servers
Windows Server 2008配置防火墙策略详解
Jun 28 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 Servers
Nginx+SpringBoot实现负载均衡的示例
win10安装配置nginx的过程
Filebeat 采集 Nginx 日志的方法
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
You might like
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
python之Character string(实例讲解)
2017/09/25 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
linux下进程间通信的方式
2013/01/23 面试题
培训自我鉴定
2014/01/31 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
网站客服岗位职责
2014/04/05 职场文书
委托公证书样本
2015/01/23 职场文书
市场总监岗位职责
2015/02/11 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL