Nginx 多 Laravel 项目配置


http {
    access_log  /dev/null;
    include mime.types;
    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 120;

    client_header_buffer_size 256k;
    large_client_header_buffers 4 256k;
    client_max_body_size 200M;
    client_body_buffer_size 512k;

    map $host $dir {
        ~^(.*)$ /Home/user/laravel/$1/public;
    }

    server {
        listen 80;
        listen 443 ssl http2;
        ssl_certificate /home/ssl.crt;
        ssl_certificate_key /home/ssl.key;

        server_name  _;
        root $dir;

        location / {
            index index.html index.htm index.php;
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
            fastcgi_param  QUERY_STRING       $query_string;
            include        fastcgi_params;
        }

        location = /debug {
            default_type text/plain;
            return 200 $dir;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

/etc/hosts 中,添加如下

127.0.0.1 a.site.com
127.0.0.1 b.site.com

然后

  • /Home/user/laravel/a.site.com/ 部署 a.site.com 的项目
  • /Home/user/laravel/b.site.com/ 部署 b.site.com 的项目

重点在那个 map 指令上。具体用法大家自己看文档去吧.

本作品采用《CC 协议》,转载必须注明作者和本文链接
www.anquanssl.com 安全 SSL
本帖由系统于 5年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3
qiuyuhome

不错,这样设置以后。多个项目可以不用设置 nginx 了,开发更方便。👍🏻。

6年前 评论

早年间也实现过一个二级域名的 Nginx 配置:https://wi1dcard.cn/snippets/laravel-nginx...,配置一个泛解析即可。

另外,macOS 可以使用 Valet 作为全套解决方案,自带 Dnsmasq。

6年前 评论

都是 public 目录可以这么搞

5年前 评论