nginx的多域http、https同时访问配置及http重定向https

1、关于ssl 服务证书的申请或生成就略过

2、nginx关于多域名访问服务器
(1)配置nginx中conf文件夹下的nginx.conf
加入代码(环境是windows 2008 server+upupw_np7.0)

include vhosts.conf;

(2)conf文件夹下新建vhost.conf, 加入以下内容:

server {
listen 80;
server_name aaa.com www.aaa.com;
location / {
root C:/UPUPW_NP7.0/htdocs;
index index.html index.htm default.html default.htm index.php default.php app.php u.php;
include C:/UPUPW_NP7.0/htdocs/up-.conf;
}
autoindex off;
include advanced_settings.conf;
#include expires.conf;
location ~
.\/(attachment|attachments|uploadfiles|avatar)\/..(php|php5|phps|asp|aspx|jsp)$ {
deny all;
}
location ~ ^.+.php {
root C:/UPUPW_NP7.0/htdocs;
fastcgi_pass bakend;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi.conf;
}
}
#反向代理到本机其他域名增加以下内容
server {
listen 80;

    server_name bbb.com  www.bbb.com;
    location / {
    proxy_pass http://127.0.0.1:8888/;    #指定本机服务器其他端口,通过http://ip:port能访问到你的网站
    include uproxy.conf;
               }
  }

配置后可以同时访问aaa.com, bbb.com

3、如果要http、https同时访问配置如下:

server {
listen 80;
listen 443 ssl;

    server_name  aaa.com  www.aaa.com;
#ssl                  on;      #如果不取消本行会产生错误
ssl_certificate      C:/UPUPW_NP7.0/Nginx/cert/214534906590602.pem;
ssl_certificate_key  C:/UPUPW_NP7.0/Nginx/cert/214534906590602.key;
#这里我使用的是阿里云的免费证书
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
    location / {
        root   C:/UPUPW_NP7.0/htdocs;
        index  index.html index.htm default.html default.htm index.php default.php app.php u.php;
        include        C:/UPUPW_NP7.0/htdocs/up-*.conf;
    }
    autoindex off;
    include advanced_settings.conf;
    #include expires.conf;
    location ~* .*\/(attachment|attachments|uploadfiles|avatar)\/.*\.(php|php5|phps|asp|aspx|jsp)$ {
    deny all;
    }
    location ~ ^.+\.php {
        root           C:/UPUPW_NP7.0/htdocs;
        fastcgi_pass   bakend;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
        fastcgi_param  PATH_INFO $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;
        include        fastcgi.conf;
    }
    }

#反向代理到本机其他域名增加以下内容

server {
listen 80;
server_name bbb.com www.bbb.com;
#ssl on;
ssl_certificate C:/UPUPW_NP7.0/Nginx/cert/214543350020602.pem;
ssl_certificate_key C:/UPUPW_NP7.0/Nginx/cert/214543350020602.key;

ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

    location / {
    proxy_pass http://127.0.0.1:8888/;    #指定本机服务器其他端口,通过http://ip:port能访问到你的网站
    include uproxy.conf;
               }
  }

***在设置443端口的时候遇到以下问题:nginx端口占用,启动报错:bind() to 0.0.0.0:443 failed (10013: An attempt was made to access a socket in a way f

解决方法:
1)cmd输入netstat -aon | findstr “443” 查找端口占用情况,找到提示占用的端口号0.0.0.0:443,查看后,pid值为4, 在系统进程服务中查到pid=4的进程为一个系统后台服务

2)一般该服务为:Routing and Remote Access服务,只需在组件服务中把对应的停掉,重启nginx即可

4、如果要让Http 重定向至 Https,对vhosts.conf配置如下:

server{
listen 80;
server_name aaaa.comm www.aaa.com;
add_header Strict-Transport-Security max-age=15768000;

return 301 https://$server_name$request_uri;

}
server {
#listen 80;
listen 443 ssl;

    server_name  aaa.com  www.aaa.com;
ssl                  on;      #如果不取消本行会产生错误
ssl_certificate      C:/UPUPW_NP7.0/Nginx/cert/214534906590602.pem;
ssl_certificate_key  C:/UPUPW_NP7.0/Nginx/cert/214534906590602.key;
#这里我使用的是阿里云的免费证书
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
    location / {
        root   C:/UPUPW_NP7.0/htdocs;
        index  index.html index.htm default.html default.htm index.php default.php app.php u.php;
        include        C:/UPUPW_NP7.0/htdocs/up-*.conf;
    }
    autoindex off;
    include advanced_settings.conf;
    #include expires.conf;
    location ~* .*\/(attachment|attachments|uploadfiles|avatar)\/.*\.(php|php5|phps|asp|aspx|jsp)$ {
    deny all;
    }
    location ~ ^.+\.php {
        root           C:/UPUPW_NP7.0/htdocs;
        fastcgi_pass   bakend;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
        fastcgi_param  PATH_INFO $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;
        include        fastcgi.conf;
    }
    }

#反向代理到本机其他域名增加以下内容

server{
listen 80;
server_name bbb.com www.bbb.com;
add_header Strict-Transport-Security max-age=15768000;
return 301 https://$server_name$request_uri;
}
server {
#listen 80;
server_name bbb.com www.bbb.com;
#ssl on;
ssl_certificate C:/UPUPW_NP7.0/Nginx/cert/214543350020602.pem;
ssl_certificate_key C:/UPUPW_NP7.0/Nginx/cert/214543350020602.key;

ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

    location / {
    proxy_pass http://127.0.0.1:8888/;    #指定本机服务器其他端口,通过http://ip:port能访问到你的网站
    include uproxy.conf;
               }
  }

原文地址:http://blog.51cto.com/13238147/2087756

时间: 2024-11-10 04:54:54

nginx的多域http、https同时访问配置及http重定向https的相关文章

https证书怎么配置?怎么进行https认证 ?

随着社会科技的发展,网络科技越来越强大几乎现在生活中都离不开网络,很多网站为了自己网站的安全性,都会选择配置一个https证书,那么https证书怎么配置呢.其实网站要配置https的话,是需要进行https认证的,那么https认证要怎么进行呢,怎么进行https证书申请呢,下面就有SSL盾小编带大家来一起看看吧. 其实要进行https证书申请的话,那么首先是要找一个HTTPSG颁发,SSL盾 CA机构,才可以进行申请.而https认证的第一步一般是用户进行https证书申请的第一步就是要生成

使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL

这里使用的是HttpComponents-Client-4.1.2 1 package com.jadyer.util; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.IOException; 7 import java.security.KeyManagementException; 8 import java

nginx 启动,停止和重新加载配置

nginx 启动,停止和重新加载配置 要启动nginx的,运行可执行文件.一旦nginx的启动时,它可以通过与-s参数调用可执行来控制.使用以下语法 nginx -s signal 其中,信号可以是下列之一: stop — fast shutdown quit — graceful shutdown reload — reloading the configuration file reopen — reopening the log files 在配置文件中所作的更改不会被应用,直到命令重新配

3.Https服务器的配置

1.前言: 所谓区块链,简而言之就是一种数据结构,每一个区块都像账本的每一页纸记录了该网络上的交易信息,而众多区块在时间的基础上按照顺序连接起 来就形成了区块链.区块链能够以数字方式识别和跟踪交易,并通过计算机的分布式网络共享这些信息,在某种意义上创建分布式信任网络.区块链提供 的分布式账本技术为追踪资产的所有权.交易信息和资产的转移提供了透明和安全的手段 其实区块链并不是一门全新的技术,中本聪研发出的比特币也只是将去中心化交易的金融思想.分布式数据存储.工作量证明pow机制等等结合那古老 又神

CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问(http跳转到https) 5.nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法 配置过程如下: 我的nginx是 yum 安装 具体安装过程参考:[转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡 一.安

nginx反向代理批量实现https协议访问

我们进入大多数HTTPS网站ie浏览器都会给出相关提醒了,但我配置了一台HTTPS代理机器发现css与js都加载不了,这个有朋友说是https页面,如果加载http协议的内容,会被认为页面不安全,所以就会弹出提醒框了. HTTPS是什么 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要

让Apache 和nginx支持跨域访问

1,如何让Apache支持跨域访问呢? 步骤: 修改httpd.conf,windows中对应的目录是:C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf 把LoadModule headers_module modules/mod_headers.so 前面的注释删除 修改 改为: 即: <Directory /> AllowOverride none Require all granted Header set Access-Control-All

Apache 和nginx支持跨域访问

1,如何让Apache支持跨域访问呢? 步骤: 修改httpd.conf,windows中对应的目录是:C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf 把LoadModule headers_module modules/mod_headers.so 前面的注释删除 修改  改为:  即: <Directory />    AllowOverride none    Require all granted    Header set Access-

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

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