java面试题网站:www.javaoffers.com
期初公司里面的ssl 是在tomcat里面做配置的,但是现在为了使用nginx做负载均衡所以我们将tomcat中的ssl给拿掉了(可以用http访问了,之前配置了ssl必须https访问,既然用nginx做https,tomcat就没有必要用https了,一个请求如同两次同样的校验没必要也不需要),然后我们安装了nginx(本人也写了nginx的安装教程),然后在nginx里面做负载均衡,首要 下载ngixn ssl的证书,我们使用的是阿里云,所以直接在阿里云下载的 nginx ssl 证书(是一个压缩包),解压后得到两个 文件 1505880__XXXXX.com.pem,和 1505880__XXXXX.com.key,在服务上见一个文件夹(我建的是/usr/local/nginx/conf/cert)放这两个文件。然后在nginx的配置 文件中 *.conf中配置如下信息(主要改的地方我用红色标起来)
upstream web2_proxy{
server 127.0.0.1:8080;
}
server {
listen 80; #监听端口
server_name oper.yizutiyu.com; #转发域名,根据该域名规则进行转发,多个用空格隔开
index index.html index.htm index.jsp; #启动页,多个用空格隔开
rewrite ^(.*)$ https://$host$1 permanent; #http 请求自动转换为https,就这样写
#目录自动加“/” ,这个功能一般浏览器自动完成
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
# 动态页面,交给tomcat处理
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#反向代理的地址
#proxy_pass http://web2_proxy; #映射对应的 upstream
}
}
upstream web3_proxy{
server 127.0.0.1:8080;
}
server {
listen 443;
server_name oper.yizutiyu.com; #cmj
ssl on; # 注意如果是nginx1.5版本以上,这里的ssl on 要注释掉,将上面的listen 443 改为listen 443 ssl 即可,新的版本不需要写ssl on 了
root html;
index index.html index.htm index.jsp;#cmj
ssl_certificate /usr/local/nginx/conf/cert/1505880__XXXXX.com.pem;#证书
ssl_certificate_key /usr/local/nginx/conf/cert/1505880__XXXXX.com.key;#私钥
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;
# 动态页面,交给tomcat处理
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#反向代理的地址
proxy_pass http://web3_proxy;# 指向对应的 upstream
}
}
配置nginx https 的一个总结