一个nodejs应用程序和laravel应用程序的nginx配置

时间:2019-02-11 16:26:08

标签: laravel nginx next.js

所以我的服务器上有一个Web应用程序项目,其中包含2个目录: 1)前端-我以pm2开头的nodejs应用程序(next.js)。 2)api-laravel后端api

我还安装了nginx并尝试将其作为我的服务器设置:

server {
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    listen 80;
    listen [::]:80;
    root /project/api/public;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass             unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

现在,当我访问我的网址时,前端部分可以正常工作,因此当我访问example.com时,我可以看到我的Web应用程序(因此,端口3000代理的配置有效)。

但是后端/ api无法工作,我认为是因为当我执行后端任务时,它不会重定向到api。喜欢 http://example.com:3000/api/auth/login/应该转到我的laravel应用。

“ / api / ...”是后端端点。

我认为我需要以某种方式定义位置/ api {}才能进入laravel应用。

任何帮助工作的人都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您有2个“位置/”定义...一个正在破坏另一个。

尝试将以下内容用作您的第二个定义:

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