2013-04-27 50 views
5

這是我的第一個問題。 如果我犯了錯,只需指出&下次我會改進它。 我是一個Java Dev & Linux新手。 我使用Tomcat 7在VPS上部署Spring MVC應用程序,並使用nginx作爲代理服務器。 經過幾天的互聯網衝浪後,我發現它可能是一個很好的組合,而不是使用tomcat和apache。 我將更多地瞭解nginx的功能。 目前,nginx處理來自客戶端的SSL,Tomcat位於同一臺機器&作爲帶有HTTP連接器的後端服務器(Tomcat & Nginx之間沒有SSL)。我也使用limit_req模塊作爲基本的HTTP Flood防護。 當我使用Tomcat作爲Web服務器時,我也瞭解APR - Tomcat本地庫。每當我啓動我的Tomcat,它就會說我的APR沒有找到。Apache Tomcat 7 + Nginx - 需要IsTomcat Native?

  1. 我需要在這種情況下(nginx + tomcat http連接器)爲Tomcat安裝APR lib以加速我的服務器嗎?
  2. 我是否有益於使用代理緩存img,css ...
  3. 誰使用此配置處理靜態文件?如果是tomcat,我們需要安裝APR,對吧?
  4. 有沒有辦法在使用代理時僅保護某些請求模式(如登錄頁面)?

我的nginx的conf:

server { 
    listen 443 ssl;  
     server_name domain; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/domain.crt; 
    ssl_certificate_key /etc/nginx/ssl/domain.key; 

    location/{ 
       proxy_pass http://localhost:8080; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-Forwarded-Proto https; 
     proxy_set_header X-Forwarfed-For $proxy_add_x_forwarded_for;  
    } 
} 

server { 
     listen  80; 
     server_name domain; 
     return 301 https://$server_name$request_uri; 
} 
+0

從https://github.com/spring-projects/spring-boot/issues/7376看來,APR主要用於SSL,在其他情況下可能不值得增加安裝複雜性。 – Vadzim 2017-12-07 20:23:32

回答

1

我會盡力回答您的問題:

  1. libtcnative使Tomcat使用本地OS接口 這樣可以加快操作系統相關的能力任務,所以你不需要 它,但我會推薦它!這裏有一個很好的例子,配置Tomcat的 背後nginx的: http://wiki.razuna.com/display/ecp/Razuna+with+Nginx+as+a+front+end+server
  2. 據我瞭解,你必須nginx的給一個根目錄,因此它可以提供和緩存靜態文件,並通過AJAX調用到tomcat
  3. 應該回答以1和2
  4. 我真的不明白的問題..
0

不,你不需要tomcat的本地人。您只需配置nginx將請求代理到tomcat服務器。使用nginx,您可以配置tomcat服務器集羣以實現負載平衡和故障轉移。