Nginx 同域名部署前后端分离项目

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

# demo.conf
server
    {
    listen 80;
    server_name demo.com; # 配置项目域名
    index index.html index.htm index.php;

    # 默认访问前端项目
    location / {
        # 前端打包后的静态目录
        alias /path/dist/;
        #解决页面刷新404问题
        try_files $uri $uri/ /index.html;
    }

    # 后端项目
    location ~* ^/(api|admin) {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # PHP-INFO-START  PHP引用配置,可以注释或修改,写法 1 和写法 2 任意一种都可以
    # 1.宝塔写法 include enable-php-80.conf;
    location ~ \.php(.*)$ 
    {
        root  /path/public/;
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi-80.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        include pathinfo.conf;
    }
    # 2.一般写法,使用 nginx 默认提供的配置,加上 `root` 相关配置即可
    location ~ \.php(.*)$ {
        root  /path/public/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
    #PHP-INFO-END

    # 前端静态资源处理
    location  ^~ /images/ {
        alias /path/dist/images/;
    }

    # 后端静态资源处理
    location  ^~ /vendor/ {
        alias /path/public/vendor/;
    }
    location  ^~ /storage/ {
        alias /path/public/storage/;
    }
}

参考 博客:Nginx代理同域名前后端分离项目

本作品采用《CC 协议》,转载必须注明作者和本文链接
www.haowuliaoa.com
本帖由系统于 1年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

想问下,在Nginx中,怎么做到同一个域名,访问两个或多个项目。
比如:www.test.com/a访问项目A,www.test.com/b访问项目B

1年前 评论
y1415181920 1年前
22 (楼主) 1年前

其实有的项目都不用这么麻烦,index.html 优先级高于index.php好像就行哈

1年前 评论

静态优化动态,或者最简单的,接口路由全部post 前端get 这样就可以用同一个域名,同一个路由了

1年前 评论
22 (楼主) 1年前
xini2603 (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!