Tomcat 上的古巴由 Nginx 代理
Cuba on Tomcat proxied by Nginx
我很难尝试将 nginx 配置为 Tomcat 运行 古巴平台的代理。我将 Nginx 用于 SSL。
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/board/local.app.properties:
cuba.webHostName = test.domain.it
cuba.webAppUrl = https://test.domain.it/board
cuba.webContextName = board
tomcat/conf/board-core/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
上面我使用了 "domain" 而不是实际的域。
从服务器指令可以看出,我已经在根目录上有一个 PHP 应用程序。
我已经尝试了几个选项,但都没有成功。 我可以访问 Tomcat,但我收到弹出窗口 "Failed to load the bootstrap javascript: ./VAADIN/vaadinBootstrap.js?v2017_03_24_15_29"
在没有 ssl 的情况下从外部通过端口 8080 访问 Tomcat 工作正常。
我建议您在 tomcat 中为您的应用程序使用相同的 /path,然后您可以将位置设置为:
location /board {
proxy_pass http://127.0.0.1:8080/board;
}
另请参阅:https://doc.cuba-platform.com/manual-6.4/server_push_settings.html 了解正确的网络套接字推送配置
我很难尝试将 nginx 配置为 Tomcat 运行 古巴平台的代理。我将 Nginx 用于 SSL。
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/board/local.app.properties:
cuba.webHostName = test.domain.it
cuba.webAppUrl = https://test.domain.it/board
cuba.webContextName = board
tomcat/conf/board-core/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
上面我使用了 "domain" 而不是实际的域。 从服务器指令可以看出,我已经在根目录上有一个 PHP 应用程序。
我已经尝试了几个选项,但都没有成功。 我可以访问 Tomcat,但我收到弹出窗口 "Failed to load the bootstrap javascript: ./VAADIN/vaadinBootstrap.js?v2017_03_24_15_29"
在没有 ssl 的情况下从外部通过端口 8080 访问 Tomcat 工作正常。
我建议您在 tomcat 中为您的应用程序使用相同的 /path,然后您可以将位置设置为:
location /board {
proxy_pass http://127.0.0.1:8080/board;
}
另请参阅:https://doc.cuba-platform.com/manual-6.4/server_push_settings.html 了解正确的网络套接字推送配置