Vapor服务器支持https 配置SSL
之前买了域名和服务器,跑了个Vapor服务在上面,后来申请了免费的SSL,在配置的过程中也遇到了一些坑,在此记录一下。
此处使用的是Ubuntu系统。
本文讲解的方法是【通过Nginx转发访问Vapor服务】
Nginx配置
之前配置Nginx的时候,我是在/etc/nginx/conf.d目录,单独建立了一个kamyshi-web.conf的文件用来专门处理我的Vapor服务。
upstream kamy-web {
server 127.0.0.1:8900;
server 127.0.0.1:8901 backup;
}
server {
listen 80;
server_name www.kamyshi.cn;
location / {
# 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X_Nginx_Proxy true;
proxy_pass http://kamy-web;
proxy_redirect off;
}
}
此处不建议大家把服务相关的东西写到/etc/nginx/nginx.conf里面,单独建一个conf来处理会比较好。因为在/etc/nginx/nginx.conf文件中是有这两行配置的:
http{
**省略一些默认的配置**
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
配置SSL
此处需要在之前的基础上增加server解析,之前的http使用的80端口,https需要443端口(此处需要确认服务器的安全组有没有开放443端口,最好确认下,没有开放443端口的话,你配置好之后也是不能访问https的)。
此处增加的配置是
server {
listen 443 ssl;
server_name www.kamyshi.cn;
# pm 文件路径
ssl_certificate SSL/www.crt;
# key文件路径
ssl_certificate_key SSL/www.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
# 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X_Nginx_Proxy true;
proxy_pass http://kamy-web;
proxy_redirect off;
}
}