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 proxy_cache 缓存配置详解
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
fastdfs+nginx集群搭建的实现
Mar 31 Servers
Nginx配置文件详解以及优化建议指南
Sep 15 Servers
nginx共享内存的机制详解
Mar 21 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
Nginx禁止ip访问或非法域名访问
Apr 07 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
Jul 15 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 Servers
Nginx+SpringBoot实现负载均衡的示例
win10安装配置nginx的过程
Filebeat 采集 Nginx 日志的方法
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
You might like
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
discuz目录文件资料汇总
2014/12/30 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
Python实现新浪博客备份的方法
2016/04/27 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python字符串判断密码强弱
2020/03/18 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
数据库方面面试题
2012/04/22 面试题
什么是Assembly(程序集)
2014/09/14 面试题
光盘行动倡议书
2014/02/02 职场文书
简单租房协议书范本
2014/08/20 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
学生会主席任命书
2015/09/21 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
《三国志》赏析
2019/08/27 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python
Mysql中常用的join连接方式
2022/05/11 MySQL