gpt4 book ai didi

node.js - Nginx 反向代理 服务 Node.js 应用程序静态文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:39:53 34 4
gpt4 key购买 nike

我有一个 Laravel 应用程序,其中一条路线/onlineAds 将带我到另一个使用 Vue.Js 作为前端、Node.js 作为后端构建的应用程序(一个 SPA)。因此,我尝试使用 Nginx 作为反向代理来服务我的 SpaApp 的静态文件,但没有成功。

我的配置如下:

/                   =>      will be serverd from "C:/laragon/www/laravel_App/public/"
/onlineAds/(*) => will be serverd from "C:/laragon/www/VueNodeApp/dist/"
/api/(*) => will be proxied to nodeJs server

这是我尝试使用 Nginx 做的事情:

server {
listen 8080;
server_name domain.test *.domain.test;
root "C:/laragon/www/laravel_App/public/";

index index.html index.htm index.php;

location / {
try_files $uri $uri/ /index.php$is_args$args;
autoindex on;
}

location ~* ^\/onlineAds(.*)$ {
alias "C:/laragon/www/craiglist/dist/";
#try_files $uri $uri/ /index.html;
}

location ~* ^\/api(.*)$ {
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

proxy_read_timeout 300;
proxy_pass http://localhost:8081;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php_upstream;
#fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}


charset utf-8;

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
location ~ /\.ht {
deny all;
}
}

我做错了什么?

最佳答案

正则表达式中的alias语句location需要文件的完整路径。请参阅this document了解详情。

例如:

location ~* ^\/onlineAds(.*)$ {
alias "C:/laragon/www/craiglist/dist$1";
if (!-e $request_filename) { rewrite ^ /onlineAds/index.html last; }
}

由于this issue,避免将try_filesalias一起使用。请参阅this caution关于 if 的使用。

<小时/>

假设 URI /js/foo.js 可能位于 C:/larragon/www/laravel_App/public/js/foo.jsC:/larragon/www/craiglist/dist/js/foo.js,您可以要求 Nginx 使用 try_files 和公共(public) root 目录尝试这两个位置。

例如:

location /js/ {
root "C:/laragon/www";
try_files /laravel_App/public$uri /craiglist/dist$uri =404;
}
location /css/ {
root "C:/laragon/www";
try_files /laravel_App/public$uri /craiglist/dist$uri =404;
}

关于node.js - Nginx 反向代理 服务 Node.js 应用程序静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296509/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com