故事1)产品经理提出一个需求,希望把公司在阿里云的http://dvlbuy.lechangebuy.com网站跳转到http://dvlbuy.lechange.com


首先现在windows用cmd去ping一下http://dvlbuy.lechangebuy.com,看了后发现这个后面绑定的是一个服务器地址,如图:

nginx和阿里云分别配置域名跳转的过程_第1张图片

那么登陆这个服务器,找到里面的nginx,在nginx/conf文件里面新建立一个叫tiaozhuan.conf文件,内容如下:

nginx和阿里云分别配置域名跳转的过程_第2张图片

然后在nginx.conf最下面添加一句“include tiaozhuan.conf;”在http{}之里。


然后重启nginx查看效果即可。具体rewrite的用法,这里就不多说了。


故事2)过了几天,产品经理又来了,说现在需求要更改了,现在要求把阿里云的http://dvlbuy.lechangebuy.com跳转到https://dvlbuy.lechange.com:8088


既然还是域名跳转,那么这一次我们换一个高级一点的方法,首先登录阿里云的lechangebuy.com的域名解析处对dvlbuy.lechangebuy.com进行一次修正的域名解析,如图:

nginx和阿里云分别配置域名跳转的过程_第3张图片

这里我们使用显性url,显性url是指“将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址”(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。


完事之后,我们测试一下发现https://dvlbuy.lechange.com:8088打不开,因为lechange.com里没有https的认证,于是我们需要申请一个https认证,在申请成功之后会获得一个key和一个CDN证书,如图:

nginx和阿里云分别配置域名跳转的过程_第4张图片

然后我们ping一下目标地址dvlbuy.lechange.com,如果后面是SLB就简单了,直接在阿里云的SLB里添加https证书就好。但是很不幸,dvlbuy.lechange.com后面绑定的是一个服务器,那么就需要nginx ssl方法


首先我们登陆到dvlbuy.lechange.com这台服务器,找到nginx的位置,然后在nginx目录下面#mkdir ssl,然后在ssl文件夹里新建两个文件,一个叫server-com.crt,另一个叫server-com.key。


其中server-com.crt的内容是复制CDN证书格式的内容,即是以“----BEGIN CERTIFICATE-----”开头的。而server-com.key的内容就是复制server.key的内容,即是以“-----BEGIN RSA PRIVATE KEY-----”开头的。这俩文件都给740权限。


因为规定要访问的是8088端口,然后在原来的dvlbuy.lechange.com对应的conf文件里,添加“listen       8088 ssl;”以及下面的内容:

    # config for ssl
   ssl_certificate      /nginx的完整路径/ssl/server-com.crt;
   ssl_certificate_key  /nginx的完整路径/ssl/server-com.key;
   ssl_session_timeout  5m;
   #ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
   #ssl_ciphers  ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;

ssl_protocols和ssl_ciphers是加密算法的东西,可加可不加。然后保存这个conf文件,重启nginx,去浏览器看一下效果就好了。




参考资料:http://blog.csdn.net/weixin_35884835/article/details/52588157