簡體   English   中英

Express 和 Nginx 對路由的爭論

[英]Express and Nginx figthing over routing

所以我需要一個奇怪的配置,直到我在今年晚些時候重構一個項目。

它是一個靜態的 index.html 登陸頁面,由 NGINX 提供一個位置根“/”。

我有一個像這樣的斜線位置:

    location /channel/ {
        proxy_pass http://node_server:5000/;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Ssl on;
        proxy_cache_bypass $http_upgrade;
    }

然后 express.js 處理。 Express 只是提供一個靜態文件夾,其中包含自動生成的內容,然后用戶可以在其中導航。

它在任何附加斜杠的意義上都很有效:

/頻道/打開/

但前提是我在“打開”后有一個斜杠。 如果我忽略它,那么 NGINX 將拋出“404 Not Found”,如果我保留它,它會按預期工作。

問題是用戶應該能夠單擊靜態服務目錄中的文件夾來遍歷文件結構,而在瀏覽器中的工作方式是單擊時不會在目錄名稱后附加斜杠,因此NGINX 然后拋出“404”。我嘗試了一個名為“express-slash”的 NPM 包,但這並沒有解決問題。

我希望這里有人對我接下來可以嘗試的內容提出一些建議?

可以在此處找到有關尾隨斜杠行為的詳細信息: https : //serverfault.com/questions/607615/using-trailing-slashes-in-nginx-configuration

但是如果你的目標是配置 NGINX 以允許目錄遍歷,你可能正在尋找autoindex指令: http : //nginx.org/en/docs/http/ngx_http_autoindex_module.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM