关于https页面中url被阻断的奇葩原因,http代码301

下面两个url:
1、https://www.baidu.com/aa?id=1
2、https://www.baidu.com/aa/?id=1

乍一看,url相同但是2中get参数前多了一个斜杠
这两种起到的效果是一样的都能顺利的给后端传递参数,但是1会发送两次请求,如下:


其中有一次都不算请求,是浏览器自动301重定向,访问的url也就由1变成了2.
这在普通情况下是没有问题的,但是如果是一个https的页面就会出现问题。

谷歌浏览器第二次请求会将请求至非https页面,这将会导致该页面成为mix content,在https页面发送非https信息,该请求将被阻拦,从而导致网页链接无法点按。

 

原因就是客户端和前置机之间使用的是https协议,而前置机和后端使用http协议,解决方法就是告诉真正的服务器,客户端间的连接是使用的https,不用修改代码,修改nginx配置

location / {
proxy_pass http://test;
proxy_redirect http:// $scheme://;  #加入此行
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

 

salt-api 在ubuntu 16.04上的问题,附解决方法

使用salt-api远程调用salt-master:
正常的http是没有任何问题的。
配置了https方式,然而当调用https的时候老是报错;
如:显示 error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 或者提示握手错误
本来看错误提示认为是ssl版本不一致造成的,使用curl调试后发现不是ssl版本问题
困扰半天google到一篇文章有了眉目:
原文地址: https://github.com/saltstack/salt/issues/37783

原来是ubuntu16上面的cherrypy 3.5版本可能存在bug,降版本即解决问题。

附解决方法:
apt-get remove cherrypy -y
curl -O https://codeload.github.com/cherrypy/cherrypy/tar.gz/cherrypy-3.2.3.tar.gz
tar -xvzf cherrypy-3.2.3.tar.gz
sudo python setup.py install
service salt-master restart
service salt-api restart

Docker安装笔记 –ubuntu 14.04 lts

Docker安装笔记

Docker安装笔记

                        –ubuntu 14.04 lts
1、更新包,安装软件支持https和ca
  1. $ sudo apt-get update
  2. $ sudo apt-get install apt-transport-https ca-certificates

2、增加 GPG key

  1. sudo apt-key adv \
  2. --keyserver hkp://ha.pool.sks-keyservers.net:80 \
  3. --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

3、增加源:

  1. # 新建文件
  2. /etc/apt/sources.list.d/docker.list
  3. # 增加
  4. deb https://apt.dockerproject.org/repo ubuntu-trusty main
  5. apt-get update
4、检查是否成功
  1. apt-cache policy docker-engine
  1. root@testdocker:/etc/apt/sources.list.d# apt-cache policy docker-engine
  2. docker-engine:
  3. Installed: (none)
  4. Candidate: 1.12.3-0~trusty
  5. Version table:
  6. 1.12.3-0~trusty 0
  7. 500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
  8. 1.12.2-0~trusty 0
  9. 500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
  10. 1.12.1-0~trusty 0
  11. 500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
  12. 1.12.0-0~trusty 0
5、安装如下软件
  1. apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual    
  2.  

完成后重启系统

6、更新源和安装docker-engine
  1. apt-get update
  2. sudo apt-get install docker-engine
  3. sudo service docker start
  4. # 运行测试命令,看docker是否正确被安装
  5. sudo docker run hello-world
7、配置镜像加速:
使用官方的docker-hub太慢,更换为163的,记住更新新的之后,一定要把docker重启
  1. sudo echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://hub-mirror.c.163.com\"" >> /etc/default/docker
  2. service docker restart
8、进入docker的伪命令行

docker exec -it Nginx /bin/bash  启动Nginx容器的伪终端命令行。