nginx之由 Nginx 代理的 Tomcat 上的古巴

cloudgamer 阅读:21 2024-10-01 17:34:08 评论:0

我很难尝试将 nginx 配置为运行 Cuba 平台的 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 

上面我使用了“域”而不是实际的域。 正如您从服务器指令中看到的那样,我已经在根目录中有一个 PHP 应用程序。

我已经尝试了几个选项,但都没有成功。 我可以访问 Tomcat,但出现弹出窗口“加载 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
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号