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反向代理及负载均衡如何实现(基于linux)
Mar 31 Servers
Apache Calcite 实现方言转换的代码
Apr 24 Servers
配置nginx 重定向到系统维护页面
Jun 08 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
总结高并发下Nginx性能如何优化
Nov 01 Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 Servers
nginx常用配置conf的示例代码详解
Mar 21 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
Linux、ubuntu系统下查看显卡型号、显卡信息详解
Apr 07 Servers
vscode内网访问服务器的方法
Jun 28 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
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
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php之Memcache学习笔记
2013/06/17 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Python中datetime模块参考手册
2017/01/13 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python批量查询域名是否被注册过
2017/06/21 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python实现京东抢秒杀功能
2021/01/25 Python
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
高三自我鉴定
2013/10/23 职场文书
科室工作的个人自我评价
2013/10/30 职场文书
便利店投资创业计划书
2014/02/08 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
5道关于python基础 while循环练习题
2021/11/27 Python
Python  lambda匿名函数和三元运算符
2022/04/19 Python