2017-03-24 22 views
3

我很難嘗試將nginx配置爲運行古巴平臺的Tomcat的代理。我使用Nginx進行SSL。Nginx代理的Tomcat上的古巴

Nginx的指令:

server { 
    server_name test.domain.it www.test.domain.it; 
    access_log /var/log/nginx/test.domain.it.access.log rt_cache; 
    error_log /var/log/nginx/test.domain.it.error.log; 
    root /var/www/test.domain.it/htdocs/PHPApp/public; 
    index index.php index.html index.htm; 
    include common/php7.conf; 
    include common/locations-php7.conf; 
    listen 443 ssl; 
    ssl on; 
    ssl_certificate  /etc/letsencrypt/live/test.domain.it/fullchain.pem; 
    ssl_certificate_key  /etc/letsencrypt/live/test.domain.it/privkey.pem; 

    location /board { 
     proxy_set_header X-Forwarded-Host $host; 
     proxy_set_header X-Forwarded-Server $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_read_timeout  3600; 
     proxy_connect_timeout 240; 
     proxy_set_header Host $host; 
     proxy_set_header X-RealIP $remote_addr; 

     proxy_pass http://127.0.0.1:8080/board; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
    } 
} 

的Tomcat/CONF /板/ local.app.properties:

cuba.webHostName = test.domain.it 
cuba.webAppUrl = https://test.domain.it/board 
cuba.webContextName = board 

的Tomcat/CONF /板芯/ local.app.properties:

cuba.webHostName = test.domain.it 
cuba.automaticDatabaseUpdate = true 
cuba.webAppUrl = https://test.domain.it/board 

Nginx接入日誌:

82.60.41.71 0.010 - [31/Mar/2017:15:13:21 +0200] test.k-rev.it "GET /board HTTP/1.1" 302 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36" 
82.60.41.71 0.015 - [31/Mar/2017:15:13:21 +0200] test.k-rev.it "GET /board/ HTTP/1.1" 200 1033 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36" 

Tomcat的訪問日誌:

127.0.0.1 - - [31/Mar/2017:10:48:40 +0200] "GET /board HTTP/1.1" 302 - 
127.0.0.1 - - [31/Mar/2017:10:48:40 +0200] "GET /board/ HTTP/1.1" 200 2349 

上面我所用 「域」,而不是實際的域。 正如你可以從服務器指令看到的,我已經有一個PHP應用程序在根上。

我已經嘗試了幾個沒有運氣的選項。 我可以訪問Tomcat的,但我得到「無法加載引導的javascript:./VAADIN/vaadinBootstrap.js?v2017_03_24_15_29」彈出

沒有SSL從外部端口8080上訪問的Tomcat工作正常。

+0

檢查訪問日誌 - tomcat可能會嘗試加載其資源而不提供'/ board /'前綴。 –

+0

我提到的唯一日誌是nginx – gmlion

+0

什麼是日誌條目? –

回答

3

我推薦你使用相同/路徑在Tomcat中爲您的應用程序,然後你可以設置位置爲:

location /board { 
    proxy_pass http://127.0.0.1:8080/board; 
} 

參見:https://doc.cuba-platform.com/manual-6.4/server_push_settings.html正確網絡插座推配置

+0

在這種情況下,我是否也應該設置cuba.webHostName和cuba.webAppUrl?向公衆面對主機名? – gmlion

+0

我仍然得到相同的錯誤 – gmlion

+0

我還得到了/ VAADIN/resources/jquery/jquery-1.12.4.min.js,board/VAADIN/vaadinPush.js?v2017_03_28_11_25上的404。我目前在nginx上配置了ssl,但在沒有它的情況下也嘗試過,錯誤是一樣的 – gmlion