nginx 的多域名多https转发设置方法【转】

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

时间: 2024-08-29 05:33:44

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

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

nginx证书制作以及配置https并设置访问http自动跳转https 默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $

Nginx多个域名,https redirect to http

背景描述:Nginx绑定多个域名,其中一个域名配置了https,如域名A:https://www.aaa.com:另外的域名B(http://www.bbb.com)没有配置SSL证书, 问题:以https方式访问B域名https://www.bbb.com的时候,默认跳转到A域名:https://www.aaa.com 解决方式1:在B网站的配置文件中配置443端口的监听,结果会跳转的nginx的欢迎页面: server { listen *:443 ssl; server_name www.

LR测试https协议设置方法

测试ssl隧道的设置方法: 前一段时间使用loadrunner测试ssl vpn时,使用ssl隧道一直配置不成功,经过查资料,终于成功,记录一下,方便大家测试.走ssl隧道与普通http,只需多设两个地方, 1.tools->recording options->port mapping 选择 第二项 winINet level data 2.runtime setting -> Internet protocol->perference 选中 WinInet replay ins

http实现自动跳转https的设置方法

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301] 复制代码 如果对某个目录做https强制跳转,则复制以下代码: RewriteEngine on RewriteBase /yourfolder RewriteCond %{SER

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

关于robots.txt文件:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信 息.您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot 访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容. 访问,可以得知我们网站中存在/admin和/bbs,其中/admin是关于后台管理的目录,把这个路径轻易的暴漏显然是不太安全的,下面我们可以通过禁止访问.txt类型的文件来,增

LR录制https协议设置方法

1.New一个脚本,option --> port mapping --> 选择第二个  WinNet level data 2.Run-time Setting --> Preferences中,选择Winlnet replay instead of Sockets(Windows only) 然后进行录制就可以了 参考:http://blog.csdn.net/hxp317028929/article/details/46557937

Haproxy实现多域名证书HTTPS

前面讲到,使用Nginx实现多域名证书HTTPS(http://fengwan.blog.51cto.com/508652/1719708),通过重新编译Nginx实现TLS SNI Support打开,那么使用Haproxy如何实现呢? 要求: Haproxy必须要1.5以上的版本 第一步:openssl的安装 tar zxf openssl-0.9.8zh.tar.gz cd openssl-0.9.8zh ./config enable-tlsext --prefix=/usr/local

宝塔Linux nginx http强制跳转https几种设置方法

最近很多人都比较关注SSL证书的申请与设置,春哥技术博客近期也为大家介绍了国内一些免费SSL证书申请流程及比较常用的VPS建站环境包如何安装配置SSL证书.希望有需要的朋友能成功为自己的站点安装SSL证书.在这里春哥为大家分享几种Nginx环境下强制http转https设置方法. 一.请先找准Nginx配置文件的位置: 其实配置文件位置不是很难找,一般是在/nginx/conf/vhost/目录下,文件命名一般是"你的域名.conf".下面介绍几种常用VPS控制面板Nginx配置文件的

Apache/nginx转发设置-分布式部署(转)

转自http://blog.csdn.net/fujianianhua/article/details/8062234 Apache转发设置 1.  Weblogic安装 Weblogic8和Weblogic10默认安装,选择完全安装即可,如果是Weblogic9则选择自定义安装,勾选WebService plugin 2.apache服务器安装 安装说明详见文档<Apache服务器搭建说明.doc> 版本对应关系: Weblogic版本   Apache版本 weblogic8     Ap