2017-10-12 150 views
0

,從那以後,所有的請求重定向到https,雖然我沒有設置到HTTPS重定向所有位置。防止重定向到HTTPS和URI黑客我已經設置好的反向代理我裏面泊塢窗的nginx服務器上nginx的反向代理

基本上我想要的是能夠服務HTTPS和HTTP與反向代理。 此外,我希望能夠動態地重定向到不同的URI,比如我想設置/ bla2 /富/酒吧的所有路由重定向到只有什麼來後/ bla2 什麼,我試圖讓這裏的是,每當訪問到example.com/bla2/foo/bar它應該重定向它沒有bla2部分example.com/foo/bar ...

  1. 是否有可能同一個配置文件?
  2. 什麼能引起我的服務器重定向所有請求到HTTPS

這是我的服務器nginx.conf

server { 
     listen 443; 
     ssl on; 
     ssl_certificate /etc/ssl/example.com.crt; 
     ssl_certificate_key /etc/ssl/example.com.key; 


     listen  80; 
     server_name example.com; 

     location /bla/bla { 
       proxy_pass http://example.com:3980/foo/bar1; 
     } 

     **location /bla2/**{ 
       # proxy_pass http://example.com:3004; 
       return 301 http://example.com:3004$request_uri; 

       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header Host $http_host; 
       proxy_set_header X-NginX-Proxy true; 
       proxy_redirect off; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 

       proxy_set_header X-Forwarded-Proto $scheme; 
     } 

     location /app3 { 
       rewrite ^/app3(.*) /$1 break; 
       proxy_pass http://example.com:1236/app3; 
     } 
} 

我希望能夠得到直接的內容http://example.com:3004如果我把它放在瀏覽器中,沒有任何重定向到https。 只有當我嘗試訪問example.com/bla2我希望它需要HTTPS而不是HTTP,和被重定向到不同的路徑。

+0

什麼是問題的權利嗎?還有什麼是在3004上運行?的NodeJS? –

+0

我有兩個不同的問題,一個是所有http重定向到http無論我指向一個應用程序,另一個路由問題,正如我上面提到的。我只是編輯了內容,我希望它現在更清晰。是的,這些應用程序是節點js應用程序 – user4860092

+1

如果您直接在瀏覽器「http://example.com:3004 /'中訪問並且重定向到https,那麼它可能只是因爲您的應用程序正在發送該重定向。另外請確保您清除瀏覽器緩存 –

回答

1

你需要使用正則表達式捕獲組此

location ~* /bla2/(.*) { 
    return 301 http://example.com:3004$1$is_args$args; 
} 

這樣做將只使用重寫

rewrite ^/bla2/(.*)$ http://example.com:3004/$1 redirect; 

如果你想它透明代理的example.com:3004去除的另一種方式/bla2那麼你應該使用

​​

/bla2/http://example.com:3004/斜線/在這裏非常重要

+0

如果你不介意添加第三個選項,而不使用重定向,所以我能接受的答案,因爲最終我選用不使用重定向的選擇,我想你明白我的意思 – user4860092

+0

@ user4860092,現在檢查 –