单台实现https的设置
-
为密钥和私钥创建一个名为ssl_key的目录,建议创建在/etc/nginx/目录下。
-
cd 到 该目录
-
设置访问的密码
openssl genrsa -idea -out server.key2048 -
申请证书
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt -
创建一个https协议的.conf文件
server {
listen 443 ssl;
# https的监听端口
server_name s.oldxu.com;
root /code;
ssl_certificate /etc/nginx/ssl_key/server.crt;
设置server.crt所在目录
ssl_certificate_key /etc/nginx/ssl_key/server.key;
设置server.key所在目录。
location / {
index index.html;
}
}
server {
listen 80;
server_name s.oldxu.con;
return 302 https://$server_name$request_uri;
# 当用户请求s.oldxu.com时使用rewrite 302临时跳转到https协议
# $server_name调用域名 $request_uri 调用请求的uri
}
通过负载均衡实现https连接后台节点
因为浏览器默认请求http所以要做https的跳转
upstream https_cluster {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
# https
server {
listen 443 ssl;
server_name s.oldxu.com;
ssl_certificate /etc/nginx/ssl_key/server.crt;
ssl_certificate_key /etc/nginx/ssl_key/server.key;
root /code;
location / {
proxy_pass http://https_cluster;
include proxy_params;
}
}
server {
listen 80;
server_name s.oldxu.com;
return 302 https://$server_name$request_uri;
}
解决前端走https后端走http网页乱码的问题
fastcgi_param HTTPS on; 将该选项加入后端应用节点的配置文件中,可以解除 前端走https后端走http会出现应用程序乱码的问题。