云智系统和博客使用的是阿里云的服务,目前购买了ECS和RDS等服务.
1.ssl证书加载在nginx上,使用的是GeoTrust通配符域名专业版OV SSL证书类型,可对所有的二级域名(*.ciemis.com)域名提供服务
2.启用了http2
3.云智系统(www.ciemis.com)可以使用http和https两种方式访问.云智博客(blog.ciemis.com)只支持https访问,http访问是会自动通过301跳转到https.当然也可以通过javascript进行跳转,代码如下:
var ishttps = 'https:' == document.location.protocol ? true : false;
if (!ishttps) {
window.location.href = "https:" + window.location.href.substring(window.location.protocol.length);
}
4.为了将多个ciemis.com的二级域名绑定到同一台服务器上,我使用了nginx作为反向代理.
www.ciemis.com在IIS上使用的是3017端口,blog.ciemis.com在IIS上使用的是3000端口, 然后在ngnix上配置了反向代理.
当然直接在IIS上绑定主机头也是可行的.
nginx的配置文件节选如下:
#云智
server {
#监听端口
listen 80;
#自己指定要跳转的域名
server_name www.ciemis.com;
#反向代理配置
location / {
proxy_pass http://localhost:3017;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
#监听端口
listen 443 ssl http2;
#自己指定要跳转的域名
server_name www.ciemis.com;
ssl on;
ssl_certificate cert/214xxxxxx0803.pem;
ssl_certificate_key cert/214xxxxxx0803.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;
#反向代理配置
location / {
proxy_pass http://localhost:3017;
proxy_set_header X-Real-IP $remote_addr;
}
}
#云智blog
server {
#监听端口
listen 80;
#自己指定要跳转的域名
server_name blog.ciemis.com;
#转向https
return 301 https://$host;
}
server {
#监听端口
listen 443 ssl http2;
#自己指定要跳转的域名
server_name blog.ciemis.com;
ssl on;
ssl_certificate cert/214xxxxxx0803.pem;
ssl_certificate_key cert/214xxxxxx0803.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;
#反向代理配置
location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
}
}
附nginx的启动,重启,关闭命令
start nginx #启动nginx
nginx -s reload #修改配置后重新加载生效
nginx -s reopen #重新打开日志文件
nginx -t -c /path/to/nginx.conf #测试nginx配置文件是否正确
#关闭nginx:
nginx -s stop #快速停止nginx
quit #完整有序的停止nginx