[英]nginx redirect from aws public subnet to private subnet not working
我有一個設置有公共子網和私有子網的Amazon Web Services VPC。 我在公共子網中有一個Nginx服務器,它接收DNS請求。 但是,我想將這些請求重定向到專用子網Web服務器。 我通過使用curl到私有子網計算機的私有IP(不可公開路由)測試了從nginx機器進行的AWS / VPC路由。 Curl返回預期結果。 但是,當我讓nginx對相同的專用IP執行返回301時,結果是搜索引擎結果,就好像重定向發生在路由表規則之外並且未被識別為有效地址。 我是否缺少nginx配置?
是的-請記住,“重定向”將使用301或302代碼以及要訪問的新地址來響應客戶端瀏覽器。 如果該地址不是可公開路由的,它將失敗,因為它是瀏覽器在請求重定向地址,而不是代理服務器(nginx)。 為了證明這一點,如果您將nginx設置為重定向到http://www.yahoo.com ,它將可以正常工作。
相反,您應該使用nginx的代理功能 -這意味着nginx接收請求,將請求傳遞給代理服務器,從請求中獲取響應,然后將其發送給客戶端。
最基本的實現是在nginx配置文件中的服務器指令中創建一個位置指令:
location / {
proxy_pass http://10.0.0.5/;
}
這會將所有請求傳遞到公共IP到私有IP。 當然,您可以使用請求/響應頭,資源等來做很多事情。一個好的起點可能是設置簡單代理服務器 。 該鏈接還具有更多配置選項,是一個很好的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.