支持
之前在网上搜索到的很多文章在描述 Nginx + Tomcat 启用 HTTPS 支持的时候,都必须在 Nginx 和 Tomcat 两边同时配置 SSL 支持。但我一直在想为什么就不能按照下面的方式来配置呢?就是 Nginx 上启用了 HTTPS,而 Nginx 和 Tomcat 之间走的却是普通的 HTTP 连接。但是搜索很多没有解决办法,最后还是老老实实的 Nginx 和 Tomcat 同时配置的 SSL 支持。
最近给 OSChina 买了个新的支持 *.oschina.net 泛域名的证书,然后我又开始偷懒的想为什么 Tomcat 一定要配 HTTPS 呢? 没道理啊。然后潜心搜索终于找到了解决方案。原来却是如此的简单。
最终配置的方案是浏览器和 Nginx 之间走的 HTTPS 通讯,而 Nginx 到 Tomcat 通过 proxy_pass 走的是普通 HTTP 连接。
下面是详细的配置(Nginx 端口 80/443,Tomcat 的端口 8080):
Nginx 这一侧的配置没什么特别的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
upstream tomcat { server 127.0.0.1:8080 fail_timeout=0;
} # HTTPS server server { listen 443 ssl;
server_name localhost;
ssl_certificate /Users/winterlau/Desktop/SSL/oschina .bundle.crt;
ssl_certificate_key /Users/winterlau/Desktop/SSL/oschina .key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
# note, there is not SSL here! plain HTTP is used
proxy_pass http: //tomcat ;
}
} |
其中最为关键的就是 ssl_certificate 和 ssl_certificate_key 这两项配置,其他的按正常配置。不过多了一个 proxy_set_header X-Forwarded-Proto https; 配置。
最主要的配置来自 Tomcat,下面是我测试环境中的完整 server.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<? xml version = '1.0' encoding = 'utf-8' ?>
< Server port = "8005" shutdown = "SHUTDOWN" >
< Service name = "Catalina" >
< Connector port = "8080" protocol = "HTTP/1.1"
connectionTimeout = "20000"
redirectPort = "443"
proxyPort = "443" />
< Engine name = "Catalina" defaultHost = "localhost" >
< Host name = "localhost" appBase = "webapps"
unpackWARs = "true" autoDeploy = "true" >
< Valve className = "org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader = "x-forwarded-for"
remoteIpProxiesHeader = "x-forwarded-by"
protocolHeader = "x-forwarded-proto"
/>
< Context path = "" docBase = "/oschina/webapp" reloadable = "false" />
</ Host >
</ Engine >
</ Service >
</ Server >
|
上述的配置中没有什么特别的,但是特别特别注意的是必须有 proxyPort="443",这是整篇文章的关键,当然 redirectPort 也必须是 443。同时 <Value> 节点的配置也非常重要,否则你在 Tomcat 中的应用在读取 getScheme() 方法以及在 web.xml 中配置的一些安全策略会不起作用。
http://www.oschina.net/question/12_213459?fromerr=r6ad3Hjz
http://my.oschina.net/u/658145/blog/75093
相关推荐
- Tomcat本身不需要直接配置HTTPS,因为Nginx会处理这部分。但是,需要确保Tomcat应用监听8080等非安全端口,以便Nginx可以将请求转发到它。 4. **反向代理设置**: - 在Nginx配置中,需要添加location块来定义...
在Nginx上配置负载均衡,将请求转发到各个Tomcat实例,同时在Tomcat的`server.xml`中设置`jvmRoute`以实现Session同步。 **环境安装:** 1. **Windows安装**:解压Nginx的.zip文件,运行`nginx.exe`启动服务,通过...
"java web项目的war包实现nginx+tomcat+https的快速和安全的配置" 本资源主要讲述了如何将 Java 开发的 war 包部署到 Linux 服务器上,并使用 Nginx 和 Tomcat 实现负载均衡和 HTTPS 访问,同时支持 IPv6 网络的...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而`nginx`和`tomcat`的结合使用就是一种常见的解决方案。`nginx`作为一款高性能的反向代理...在实际应用中,可以根据需求调整配置,例如添加SSL支持、缓存设置等。
4. 下载并安装Tomcat,配置Tomcat服务器,确保每个实例运行在不同的端口上。 5. 配置LVS主、备节点,设置VIP,并在主节点上部署keepalived。 6. 配置Nginx,包括反向代理、负载均衡策略、SSL证书等。 7. 测试系统,...
3. **配置Nginx**:在Nginx配置文件中,启用负载均衡,并根据Session ID将请求路由到保存相应Session的服务器。这可以通过使用`ip_hash`或者`hash`指令实现,使得相同Session ID的请求总是被发送到同一台Tomcat...
- **配置Tomcat**:在每个Tomcat实例上启用Session复制或设置为使用Redis作为Session存储。 - **配置Nginx**:安装Nginx并配置负载均衡策略,比如将`upstream`块定义为后端Tomcat服务器,然后在`server`块中使用`...
在互联网世界中,HTTPS协议是确保...至此,我们已经成功地在Nginx和Tomcat上配置了阿里云的免费SSL证书,实现了HTTPS访问。这不仅提升了网站的安全性,也提高了用户的信任度。注意定期更新证书,保持其有效性和安全性。
在编译前,可以使用./configure命令配合参数定制Nginx的功能模块,例如启用SSL模块和压缩模块等。编译完成后,需要通过make和make install命令来安装Nginx。配置文件nginx.conf是Nginx的核心配置文件,需要配置工作...
本教程将详细介绍如何在Win7系统上配置Nginx作为反向代理,实现对多个Tomcat实例的负载均衡。 1. **Nginx介绍** Nginx是一款高性能的HTTP和反向代理服务器,以其轻量级、稳定性和高并发处理能力而著名。在负载均衡...
安装Nginx,配置http、server和location段,设置负载均衡策略(如轮询、权重分配等),并开启SSL支持,提供安全的HTTPS服务。 3.5 数据库的安装与配置 安装MySQL数据库,创建所需的数据表,配置连接池,设置访问...
7. **安全考虑**:部署在生产环境时,确保Nginx和Tomcat都有相应的安全配置,比如防火墙规则、SSL/TLS加密、限制不必要的端口访问等。 通过以上步骤,你将拥有一个基于Windows、Nginx和Tomcat的负载均衡和集群系统...
本文将深入探讨如何配置Nginx+Tomcat+Https的服务器负载均衡环境,这对于大型网站或高流量应用来说至关重要,可以提高系统的可用性和响应速度。我们将按照以下步骤进行讲解: 1. **JDK安装配置** - 首先,我们需要...
在配置过程中,需要指定安装路径、配置文件路径、日志路径等参数,并启用SSL、FLV、GZIP静态模块以及HTTP状态模块等。在启动Nginx时,可能会遇到如用户不存在或目录未创建等问题,需要相应地添加用户或创建缺失的...
Nginx和Tomcat是两种常见的Web服务器,它们在软件开发中经常被组合使用,以实现高效、稳定的服务。Nginx以其高性能、低资源消耗和强大的反向代理能力著称,而Tomcat则是一个专注于Java应用的Servlet容器。本文将深入...
当我们需要在Apache和Tomcat环境中实现HTTPS支持,即安全的HTTP服务时,就需要进行Apache+Tomcat+SSL的配置,并可能需要用到一些相关插件来辅助完成这个过程。 首先,让我们详细了解一下SSL配置的基础知识。SSL证书...
4. **配置Nginx**:在Nginx的配置文件中,启用负载均衡器,使用ip_hash或cookie来实现粘滞会话,确保来自同一用户的请求始终路由到同一台Tomcat服务器。 5. **测试与监控**:部署应用并进行测试,确保session在不同...
1,tomcat8的配置: 1.1修改tomcat8.x/conf/context.xml的配置如下: <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file ...