nginx开启https负载均衡+tomcat

一、SSL证书

证书的申请自行百度。我使用的是腾讯云,有免费的证书,申请完后把证书下载下来。

腾讯云下载下来的证书包含5个内容:

Apache文件夹:Apache证书文件
IIS文件夹:IIS证书文件
Nginx文件夹:Nginx证书文件
Tomcat文件夹:tomcat证书文件
www.xxx.com.csr文件:文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。

根据你的需要选择需要使用的证书。我们要在nginx开启https,所以选择nginx文件夹中的证书。

二、Nginx服务器证书安装

准备好了证书文件,连接上了你的服务器后,我们开始配置。

1、拷贝证书到服务器

Nginx文件夹中的文件:

  • 1_www.xxx.com_bundle.crt:证书文件
  • 2_www.domain.com.key:私钥文件
    将这两个文件拷贝到服务器的nginx安装目录的conf文件夹里。你也可以拷到自己希望存的位置,如果是这样在配置的时候,文件前面要加上路径。
2、编辑nginx的配置文件

使用命令打开nginx的配置文件:

vim /usr/local/nginx/conf/nginx.conf

下面就开始来配置具体内容:

server {
     #SSL 访问端口号为 443
     listen 443; 
     #填写绑定证书的域名
     server_name www.xxx.com; 
     #启用 SSL 功能
     ssl on;
     #证书文件名称
     ssl_certificate 1_www.xxx.com_bundle.crt; 
     #私钥文件名称
     ssl_certificate_key 2_www.xxx.com.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
        #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         root /var/www/www.xxx.com; 
         index  index.html index.htm;
     }
 }
3、配置完之后看一下是否成功

在nginx根目录下,通过命令验证配置文件是否有问题:

./sbin/nginx -t

如果现实Successfully,则代表成功

三、负载均衡到tomcat服务器

我们的nginx可能做了负载均衡服务器,如果我们不想再给tomcat配置证书的话,我们就需要增加些配置,来保证可以正常访问。
nginx的conf的配置如下:

location ^~ /aaa/ {
    proxy_pass http://tomcat;
    proxy_set_header Host $http_host;
    proxy_set_header ?X-Real-IP ?$remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto  $scheme;
}

我们需要在location里面配置proxy_set_header X-Forwarded-Proto $scheme;

然后去tomcat去配置,打开tomcat的server.xml文件:


注意上面的配置,在tomcat本来的配置上新添了一些配置,这些配置告诉tomcat它前面的是https代理。

配置完这些项目就可以正常访问了。


写在最后:

  • 如果文章中有错误或是表达不准确的地方,欢迎大家评论中指正,以便我完善。
  • 文章我也会根据所学到新的知识不断更新。

你可能感兴趣的:(nginx开启https负载均衡+tomcat)