從 root 設定 nginx 重新導向

從 root 設定 nginx 重新導向

我正在嘗試配置 nginx,但儘管我多次嘗試,但仍無法使其工作。我需要的是:

  • 80端口,/download由nginx提供服務
  • 連接埠 80,其他任何內容都會重新導向到同一台機器,連接埠 8080

這工作正常,但現在我只需要在根的情況下(http://myhost/) 用戶端將重定向到位於 的預設應用程式/Games。我目前的配置是錯誤的,並在無限循環中重定向我。我得到了一些想法這裡但無法使其發揮作用。重定向範例:

ex1: http://myhost/  --> http://myhost/Games --> http://localhost:8080/Games
ex2: http://myhost/Books --> http://localhost:8080/Books

我努力了

        location / {
            proxy_pass  http://localhost:8080/Games;
        }

但這似乎對所有事情都有作用(例如:/Books、/XYZ,...)。我認為指定確切根時的重定向是最乾淨的。

另外,我需要在 HTTPS 上複製它。我想這也適用於“stream”元素。


nginx.conf:

http {
    server {
        listen  80;
        root /home/www/;
        location = / {
            return 301 http://$host/Games;
        }
        location / {
            proxy_pass  http://localhost:8080;
        }
        location /download/ {
            ....
        }
    }
}

stream {
    server {
        listen  443;
        ...
    }   
} 

答案1

這裡的問題到底是什麼?你的配置對我有用:

server {
    listen 80;
    listen [::]:80;

    server_name 192.168.0.2;
    root /var/www;

    location = / {
        return 301 http://$host/folder;
    }

    location / {
        proxy_pass http://otherserver:80;
    }
}

紀錄:

[22/Feb/2018:17:04:55 +0100] "GET / HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder/ HTTP/1.1" 200
[22/Feb/2018:17:11:29 +0100] "GET /index.html HTTP/1.0" 200

您在日誌中看到了什麼?請求根本無法被代理還是本地主機導致了問題?你的本地主機的配置是什麼樣的?資訊太少,無法幫助您。

另外,我需要在 HTTPS 上複製它。我想這也適用於“stream”元素。

不確定你的意思,但你可以添加另一個具有相同配置的伺服器區塊,listen 443而不是listen 80添加 ssl 指令。

相關內容