一看必会系列:nginx 反向代理https服务
nginx 反向代理到其它https网站是不可能的,当然同域名是可以的
nginx 反赂代理到https后端是可以的
查看nginx 是否有ssl模块
nginx -v
–with-http_ssl_module
到免费网站上申请ssl证书
https://freessl.org/
并下载
下载的文件有两个:
1,ss.pem
2,ss.key
五,服务器安装,配置nginx
登录到服务器:
upstream coin {
server www.tr.com; # 你代理的域名
}
server {
listen 80;
server_name www.ccie.wang;
rewrite ^(.*) https://www.ccie.wang permanent;
}
server {
listen 443;
server_name www.ccie.wang; # 你的域名
ssl on;
ssl_certificate /etc/nginx/cert/full_chain.pem;
ssl_certificate_key /etc/nginx/cert/private.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;
access_log /var/log/nginx/ccieerror.log ;
location / {
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_pass http://coin;
}
}
配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。
$ nginx -t // 检查nginx配置文件
配置正确后,重新加载配置文件使配置生效:
$ nginx -s reload // 使配置生效
至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。
如需重启nginx,用以下命令:
$ service nginx stop // 停止
$ service nginx start // 启动
$ service nginx restart // 重启
七,访问效果
输入http:bjubi.com也会自动跳转至https页面。
说明:如果是云服务器比如阿里云ECS,需要到阿里云ECS的管理后台的安全组,修改端口过滤规则把80端口和443端口开放才能访问到。
注意:
listen 443:表示监听443端口,即以https提交的请求,上面的listen 80表示同时也监听以http提交的请求;
ssl on:表示开启SSL协议;
ssl_certificate:指定SSL证书的crt文件路径(如果是阿里云的证书则是pem文件);
ssl_certificate_key:指定SSL证书的key文件路径;
其他ssl开头的可以照搬;
proxy_pass:指定代理的地址,可以是外网地址,也可以是内网地址;
proxy_redirect http:// $scheme://:表示在程序中有redirect跳转时,将采用原有传输协议方式跳转,即如果是以https请求,在跳转后依然是https。
配置完成重启Nginx即可以https访问。
在Windows中配置Nginx做https的反向代理
暂时还木有人评论,坐等沙发!