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 相关文章推荐
如何利用map实现Nginx允许多个域名跨域
Mar 31 Servers
nginx+lua单机上万并发的实现
May 31 Servers
nginx服务器的下载安装与使用详解
Aug 02 Servers
Nginx反向代理学习实例教程
Oct 24 Servers
总结高并发下Nginx性能如何优化
Nov 01 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
tomcat正常启动但网页却无法访问的几种解决方法
May 06 Servers
nginx 添加http_stub_status_module模块
May 25 Servers
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
May 25 Servers
Win Server2016远程桌面如何允许多用户同时登录
Jun 10 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
娱乐地球:Entertainment Earth
2020/01/08 全球购物
车间调度岗位职责
2013/11/30 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
学生手册家长评语
2014/02/10 职场文书
先进集体获奖感言
2014/02/13 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
秋天的雨教学反思
2014/04/27 职场文书
社团活动总结报告
2014/06/27 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
学习计划书怎么写
2014/09/15 职场文书
法院授权委托书格式
2014/09/28 职场文书
春季运动会开幕词
2015/01/28 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python