version: 1.1(fixed) 修正一些错误
基本环境:
/etc/nginx/nginx.conf #保持
/etc/nginx/ssl/    #ssl认证文件
/etc/nginx/site-available  #VirtualHost设置区
/etc/nginx/site-enable  #VirtualHost应用区

基本设计:
让nginx支持多域名(包括二级域名),并自动跳转到https(所有域名默认访问https),反向代理转发到后台不同端口。

设置文件:
/etc/nginx/site-available/virtualhost1.conf
upstream vs1{
        #这里可以设置负载均衡
        server 127.0.0.1:3000;
    }
    server {
        listen 80 ;
        server_name www.youdomain.com;
        #这里设置跳转,return 301不太好用~~
       rewrite ^ https://$server_name$request_uri? permanent;
    }
    server {
        listen 443 ssl;
  
        #设置ssl认证文件
        ssl_certificate /etc/nginx/ssl/startssl_ca.crt;
        ssl_certificate_key /etc/nginx/ssl/startssl_ca.key;
        ssl_protocols        SSLv3 TLSv1;
        ssl_ciphers HIGH:!aNULL:!MD5;

server_name youdomain.com www.youdomain.com;
        #这里设置域名跳转名称不变
        server_name_in_redirect off;
        error_page 502  /errors/502.html;
        # 这里设置默认https跳转
        error_page 497 https://$host$uri?$args;
        location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
        access_log off;
          expires max;
        }

location /errors {
          internal;
        }

location / {
          proxy_redirect off;
          proxy_pass  http://vs1;
          proxy_set_header   X-Real-IP            $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_set_header   X-Forwarded-Proto $scheme;
          proxy_set_header   Host                   $host;
          proxy_set_header   REMOTE-HOST            $remote_addr;
          proxy_set_header   X-NginX-Proxy    true;
          proxy_set_header   Connection "";
          proxy_http_version 1.1;
 }
}
/etc/nginx/site-available/virtualhost2.conf
  #与上一个文件同样的地方略去。
   upstream vs2{
        #这里端口为4000,可以设置负载均衡
        server 127.0.0.1:4000;
    }
    server {
        listen 80;
        server_name subdomain.yourdomain.com;
        rewrite ^ https://$server_name$request_uri? permanent;
   }
   server {
        listen 443 ssl;
        #可以设置独立的ssl认证
        ssl_certificate /etc/ssl/nginx/startssl_1_ca.crt;
        ssl_certificate_key /etc/ssl/nginx/startssl_1_ca.key;
        ssl_protocols        SSLv3 TLSv1;
        ssl_ciphers HIGH:!aNULL:!MD5;

#这里设置了二级域名跳转,需要在DNS处设置一条A记录,也可以支持其它顶级域名
        server_name vs2.youdomain.com;
        server_name_in_redirect off;

error_page 502  /errors/502.html;
        error_page 497 https://$host$uri?$args;
        # ....
       location / {
          proxy_redirect off;
          proxy_pass  http://vs2;
          proxy_set_header   X-Real-IP            $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_set_header   X-Forwarded-Proto $scheme;
          proxy_set_header   Host                   $host:server_port;
          proxy_set_header   REMOTE-HOST            $remote_addr;
          proxy_set_header   X-NginX-Proxy    true;
          proxy_set_header   Connection "";
          proxy_http_version 1.1;
        }
    #....
}

设置应用:
在/etc/nginx/site-enable下做连接
$sudo ln -s  vs1.conf /etc/nginx/site-available/vs1.conf
测试配置文件是否正确
$sudo nginx -t
让nginx重新加载设置:
$sudo nginx -s reload

测试通过环境:ubuntu 13-server

参考:

nginx 的多域名多https转发设置方法-million-ChinaUnix博客
http://blog.chinaunix.net/uid-231372-id-4584714.html

nginx 的多域名多https转发设置方法【转】的更多相关文章

  1. nginx证书制作以及配置https并设置访问http自动跳转https(反向代理转发jboss)

    nginx证书制作以及配置https并设置访问http自动跳转https 默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖 ...

  2. [转帖]一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS

    一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS https://home.cnblogs.com/u/beyang/ 一台服务器,两个域名 首先购买https,获取到CA证 ...

  3. Nginx多个域名,https redirect to http

    背景描述:Nginx绑定多个域名,其中一个域名配置了https,如域名A:https://www.aaa.com:另外的域名B(http://www.bbb.com)没有配置SSL证书, 问题:以ht ...

  4. 一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS

    一台服务器,两个域名 首先购买https,获取到CA证书,两个域名就得到两套证书 第二步:现在就是Nginx和OpenSSL的安装与配置(这里注意,一般情况下一个IP只支持一个SSL证书,那么我们现在 ...

  5. LR测试https协议设置方法

    测试ssl隧道的设置方法: 前一段时间使用loadrunner测试ssl vpn时,使用ssl隧道一直配置不成功,经过查资料,终于成功,记录一下,方便大家测试.走ssl隧道与普通http,只需多设两个 ...

  6. Nginx实现多域名证书HTTPS

    目前公司有2个域名,其中这次涉及到3个子域名需要更改为HTTPS传输,分别为: passport.abc.com www.test.com admin.test.com 那么就涉及到购买ssl证书的问 ...

  7. IIS中多域名多网站的设置方法

    一个 IP 可以绑定多个域名.如您需要实现多个域名访问同一个网站,只需就不同域名添加 A 记录指向同一个 IP 即可. 如您需要实现多个域名访问同一虚拟服务器上不同网站,也需要就不同域名添加 A 记录 ...

  8. nginx下禁止访问robots.txt的设置方法

    关于robots.txt文件:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信 息.您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网 ...

  9. LR录制https协议设置方法

    1.New一个脚本,option --> port mapping --> 选择第二个  WinNet level data 2.Run-time Setting --> Prefe ...

随机推荐

  1. Jump Game - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Jump Game - LeetCode 注意点 解法 解法一:贪心算法,只关注能到达最远距离,如果能到达的最远距离大于结尾说明能到达,否则不能.并且如果 ...

  2. 【spoj SUBST1】 New Distinct Substrings

    http://www.spoj.com/problems/SUBST1/ (题目链接) 题意 求字符串的不相同的子串个数 Solution 后缀数组论文题. 每个子串一定是某个后缀的前缀,那么原问题等 ...

  3. springboot项目添加jsp支持

    一.创建springboot项目 使用 http://start.spring.io/ 快速创建一个springboot项目下载并导入 二.添加依赖 在pom.xml中添加支持jsp的依赖如下: &l ...

  4. as, idea 出现 Gradle's dependency cache may be corrupt 错误分析

    问题: Error:Failed to open zip file.Gradle's dependency cache may be corrupt (this sometimes occurs af ...

  5. WEB下面路径的问题

    web 中的  /  到底代表什么? 绝对路径-以Web站点根目录为参考基础的目录路径.之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的.相对路径-以引用文件之网页所在位置为参考 ...

  6. Python【操作EXCEL文件】

    #Python中,对EXCEL文件的读写操作需要安装.导入几个第三方模块#xlrd模块:只能读取EXCEL文件,不能进行写操作#xlwt模块:只能进行写操作,但是不能是覆盖写操作(也就是修改Excel ...

  7. 秋色园QBlog技术原理解析:性能优化篇:缓存总有失效时,构造持续的缓存方案(十四)

    转载自:http://www.cyqdata.com/qblog/article-detail-38993 文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文 ...

  8. C语言第九节进制

    进制 什么是进制 是一种计数的方式,数值的表示形式 数一下方块的个数 汉字:十一 十进制:11 二进制:1011 八进制:13 多种进制:十进制.二进制.八进制.十六进制.也就是说,同一个整数,我们至 ...

  9. PHP里echo print print_r的区别

    echo ,print的区别在于echo 可以输出多个变量值,而print只有一个变量,做为一个字符串输出. 另一点区别在于echo 没有返回值,print有返回值1.print不能输出数组和对象. ...

  10. C++的一些不错开源框架,可以学习和借鉴

    from https://www.cnblogs.com/charlesblc/p/5703557.html [本文系外部转贴,原文地址:http://coolshell.info/c/c++/201 ...