在nginx配置部分https
2015-09-18 17:50
453 查看
在昨天的文章(配置https实现请求安全)里,我介绍了nginx配置全站的https访问,这样对所有请求都会加密,会减慢响应速度。
在实际的项目中,我们也没有必要对所有请求加密,比如浏览一个帖子列表,查看一个商品信息等等,只需要对一些包含敏感数据的请求加密就可以了。
因此,今天尝试配置了nginx部分的https访问,这里的测试会继续使用到昨天生成的秘钥和证书,对登陆页面进行加密,配置的代码如下:
部署服务器详情:
三台tomcat:
localhost:8081,localhost:8082,localhost:8083
一台nginx
在上面的配置实现了以下功能:
1、nginx作为一个负载均衡器,除了login.jsp请求,其他请求都会平均分发到其他三个本地服务器
2、http://localhost:9001/test/login.jsp时,会重定向为https://localhost/test/login.jsp,对login.jsp加密
3、https://localhost/test/* 时,会重定向为http://locathost:9001/* ,一般请求不加密
这里简单说一下rewrite语法:rewrite regex replacement [flag];
flag可以有四个取值:
last : 相当于Apache的[L]标记,表示完成rewrite
break : 停止执行当前虚拟主机的后续rewrite指令集
redirect : 返回302临时重定向,地址栏会显示跳转后的地址
permanent : 返回301永久重定向,地址栏会显示跳转后的地址
另外,测试时,如果是在另一台机器访问,上面rewrite ^ http://$server_addr:9001$request_uri?中,必须要用$server_addr不能用$server_name,否则会重定向到本机
在实际的项目中,我们也没有必要对所有请求加密,比如浏览一个帖子列表,查看一个商品信息等等,只需要对一些包含敏感数据的请求加密就可以了。
因此,今天尝试配置了nginx部分的https访问,这里的测试会继续使用到昨天生成的秘钥和证书,对登陆页面进行加密,配置的代码如下:
upstream site{ server localhost:8081; server localhost:8082; server localhost:8083; } server { listen 9001; server_name localhost; index index.jsp index.html; root /home/default; location ~ .* { proxy_pass http://site; proxy_set_header X-Real-IP $remote_addr; } location ^~ /test/login.jsp{ rewrite ^ https://$server_addr:443$request_uri? permanent; } } server { listen 443 ssl; server_name localhost; ssl on; ssl_certificate /home/dayuanzi/temp/rsamiyao.csr; ssl_certificate_key /home/dayuanzi/temp/rsamiyaonopw.key; location / { rewrite ^ http://$server_addr:9001$request_uri? permanent; } location ^~ /test/login.jsp{ proxy_pass http://127.0.0.1:8081; proxy_redirect off; proxy_set_header Host $host; 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; } }
部署服务器详情:
三台tomcat:
localhost:8081,localhost:8082,localhost:8083
一台nginx
在上面的配置实现了以下功能:
1、nginx作为一个负载均衡器,除了login.jsp请求,其他请求都会平均分发到其他三个本地服务器
2、http://localhost:9001/test/login.jsp时,会重定向为https://localhost/test/login.jsp,对login.jsp加密
3、https://localhost/test/* 时,会重定向为http://locathost:9001/* ,一般请求不加密
这里简单说一下rewrite语法:rewrite regex replacement [flag];
flag可以有四个取值:
last : 相当于Apache的[L]标记,表示完成rewrite
break : 停止执行当前虚拟主机的后续rewrite指令集
redirect : 返回302临时重定向,地址栏会显示跳转后的地址
permanent : 返回301永久重定向,地址栏会显示跳转后的地址
另外,测试时,如果是在另一台机器访问,上面rewrite ^ http://$server_addr:9001$request_uri?中,必须要用$server_addr不能用$server_name,否则会重定向到本机
相关文章推荐
- FreeBSD IPFW 防火墙的安装和设置
- MAC使用Parallels克隆虚拟机网络不可用的解决方法
- 网络协议
- 编译安装httpd后利用脚本修改参数
- Xcode更新之后提示App Transport Security has blocked a cleartext HTTP(http://)resource load since it is ...
- http://ogldev.atspace.co.uk/
- 提取神经网络数学表达式
- Android 各大网络请求库的比较及实战
- Android-网络框架
- 网络视频带宽计算方法
- XUtils开源项目---HttpUtils网络处理
- TCP、IP的三次握手和四次挥手解析
- 【计算机网络】wireshark抓包分析1
- Nagios显示类似错误:HTTP WARNING: HTTP/1.1 403 Forbidden - 5240 bytes in 0.002 second response time。
- FreeBSD手册——配置FreeBSD内核
- ifstat和iftop网络流量实时监控、vnstat网络流量统计,系统centos7
- https://www.freebsd.org/doc/zh_CN/books/handbook/firewalls-ipfw.html
- access vba代码直接创建网络盘符或打开内部网络共享文件夹
- ios9 http请求报错
- iOS9 HTTP 不能正常使用的解决办法