所以我的服务器上有一个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应用。
任何帮助工作的人都将不胜感激。
答案 0 :(得分:0)
您有2个“位置/”定义...一个正在破坏另一个。
尝试将以下内容用作您的第二个定义:
location /api {
try_files $uri/ /index.php?$query_string;
}