server { listen 80; server_name coddict.tk; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443; server_name coddict.tk; ssl on; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; location / { proxy_pass https://127.0.0.1:8080; } }
上面是我新写的一个nginx的配置,我现在有一个go程序跑在网上,占用的端口是8080,之前没有用ssl的时候是可以从80反向代理到8080的,当然配置也不是上面这样的。现在加了SSL之后,就必须要通过https://www.coddickt.tk才能进行访问了。80那边监听的也用rewrite重写了所有http请求到https。为什么还是不能直接输入www.coddict.tk就是https请求呢?
阿里云SSL证书服务可提供Nginx服务器、Apache服务器、Tomcat服务器、IIS服务器和其他服务器类型证书下载并安装到对应的服务器中,详情请参见如何在各类服务中安装SSL证书
server { listen 80; server_name coddict.tk; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443; server_name coddict.tk; ssl on; ssl_certificate cert.pem; ssl_certificate_key cert.key; location / { proxy_pass https://127.0.0.1:8080; } } server { listen 8080; server_name coddict.tk; ssl on; ssl_certificate cert.pem; ssl_certificate_key cert.key; location / { root /usr/share/nginx/html/ssl_8080; index index.html index.htm; } }
我测试这样,访问http://www.coddict.tk
返回的URL是:https://www.coddict.tk/
返回的内容是:https://www.coddict.tk:8080/
测试没任何问题。
[lvfifi@archlinux ~]$ curl -I http://www.coddict.tk HTTP/1.1 301 Moved Permanently Server: nginx/1.6.1 Date: Sun, 10 Aug 2014 07:16:24 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: https://www.coddict.tk/ [lvfifi@archlinux ~]$ curl -kL http://www.coddict.tk ssl 8080 [lvfifi@archlinux ~]$
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。