1

我已經在Loadbalancer後面的tomcat EC2實例上運行了我的Spring引導應用程序,該實例已使用Http配置了Https和internelly。將Http Url重定向到Https彈性beanstalk負載均衡器

我想重定向url請求到HTTP到HTTPS。

我發現這個document從AWS支持

,因爲它說,我需要用下面的配置

RewriteEngine On 

RewriteCond %{HTTP:X-Forwarded-Proto} =http 

RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] 

我的問題是在哪裏添加這些配置來配置Apache的後臺?

還有另一個文件說我需要將.ebextensions目錄添加到webapp目錄並將配置放置在那裏。如果是這種情況,那麼目錄結構和配置文件格式是什麼?

回答

3

在項目的根目錄下創建一個文件夾.ebextensions(並確保它是你要上傳到彈性魔豆束的根事情是這樣的:

~/workspace/my-app/ 
|-- .ebextensions 
| -- httpd 
|  -- conf.d 
|   -- myconf.conf 
-- index.jsp 

myconf.conf

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} =http 
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] 

有關於定製Java應用程序中的彈性魔豆Tomcat的運行整篇文章:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-platform.html看一看更多信息

+0

感謝您的回覆,我會測試它。 – naveejr

+0

它不工作。在日誌中,我發現 「無效的命令'RewriteEngine',可能拼錯或由未包含在服務器配置中的模塊定義」 – naveejr

+0

我將其標記爲接受,因爲它回答了有關目錄結構的主要問題。完整答案請查看下面的答案。 https://stackoverflow.com/questions/44805261/redirect-http-url-to-https-in-elastic-beanstalk-loadbalancer/44829374#44829374 – naveejr

2

實測溶液創建在以下位置配置文件

~/workspace/server/ 
|-- .ebextensions 
| -- httpd 
|  -- conf.d 
|   -- abc.conf 

具有以下內容

<VirtualHost *:80> 
     LoadModule rewrite_module modules/mod_rewrite.so 

     RewriteEngine On 
     RewriteCond %{HTTP:X-Forwarded-Proto} !https 
     RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker 
     RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

     <Proxy *> 
      Order deny,allow 
      Allow from all 
     </Proxy> 

     ProxyPass/http://localhost:8080/ retry=0 
     ProxyPassReverse/http://localhost:8080/ 
     ProxyPreserveHost on 

     ErrorLog /var/log/httpd/elasticbeanstalk-error_log 

</VirtualHost> 

負載mod_rewrite並在較新的Tomcat安裝必需的。

相關問題