使用nginx + undertow的情况下,SSL/HTTPS该如何配置?

请教下,在使用nginx + undertow的情况下,ssl/https该如何配置,是 只需要配置 nginx就好了吗?还是nginx + undertow都需要配置?还是只需要配置undertow? 感谢~

评论区

要输就输给追求

2020-03-23 11:35

只需要配置nginx

JFinal

2020-03-23 11:35

只需配置其中一个

如果配置 nginx 上的 ssl/https, 那么就不需要配置 undertow

如果配置了 undertow 就不需要配置 nginx,并且不能让 nginx 来代理。因为如果让 nginx 来代理,意味着用户的请求先到达 nginx,那么就需要 nginx 支持 ssl/https

所以,最终的结果是,如果安装了 nginx 并用了它的代理,就必须在 nginx 上配置 ssl/https。 当 nginx 不存在时,单独配置 jfinal undertow 的 ssl/https 即可

JFinal

2020-03-23 11:42

以上是 jfinal.com 官网的 nginx ssl/https 配置片段:
server {
listen 80;
listen 443 ssl http2;
keepalive_timeout 70;

server_name jfinal.com www.jfinal.com;
root /app/web/jfinal-com/webapp;

ssl_certificate cert/20200618_www.jfinal.com.pem;
ssl_certificate_key cert/20200618_www.jfinal.com.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

以下是 location 配置......
}

其中 /app/web/jfinal-com 就是本站的 jfinal undertow 项目下的 web 项目

以上配置基本上是可以照抄的,几乎是最简洁的 nginx ssl/https 配置,既支持 https,还支持 http2 , 极大提升访问速度

注意 listen 443 ssl http2; 是最简洁的 ssl/https 配置

第一行的 listen 80; 是在支持 https 的基础上再支持 http,最简洁的配置

年轻人

2020-03-23 12:06

@JFinal @要输就输给追求 明白了,非常感谢两位的指教~

fmpoffice

2020-08-24 18:59

@JFinal 请问,如果有两个undertow项目,都需要启动https,那么应该是使用nginx来处理才行吧?undertow会冲突吧!?

JFinal

2020-08-24 21:11

@fmpoffice 同一台服务器用 nginx 支持更方便, undertow 走另外的端口即可

rocker18

2022-03-09 11:22

@JFinal 这个证书是放哪个路径下呢

JFinal

2022-03-09 12:28

@rocker18 以下配置可以看出来:
ssl_certificate cert/20200618_www.jfinal.com.pem;
ssl_certificate_key cert/20200618_www.jfinal.com.key;

是放在 /etc/nginx/cert/ 下

rocker18

2022-03-22 18:07

@JFinal 感谢!!!

热门反馈

扫码入社