当前位置: 移动技术网 > IT编程>脚本编程>Python > Nginx代理同域名前后端分离项目的完整步骤

Nginx代理同域名前后端分离项目的完整步骤

2020年10月18日  | 移动技术网IT编程  | 我要评论
前后端分离项目,前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。以 vue + php 项目为例。直接上 server 模块的 nginx 配置。server { listen 80;

前后端分离项目,前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。

以 vue + php 项目为例。直接上 server 模块的 nginx 配置。

server
 {
 listen 80;
 #listen [::]:80 default_server ipv6only=on;
 server_name demo.com; # 配置项目域名
 index  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代理同域名前后端分离项目内容请搜索移动技术网以前的文章或继续浏览下面的相关文章希望大家以后多多支持移动技术网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网