分类 【编程开发】 下的文章

nginx反向代理到Https后,请求Http资源报错blocked mixed-content

转载自Honins的CSDN博客
解决https请求http资源不可用的情况

第一种方法:

  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">

比如这里我用了bootcss的cdn,但是正常情况下这样写是会报blocked mixed-content错误的。

解决方法:

 <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">

这样的话浏览器就会根据你域名的请求来识别,比如https下他会自动请求https的资源,而http时,请求http的资源。
但是有可能他并不存在https的资源,但是我又想在Https下用这个cdn怎么办呢?

第二种方法:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

这样他会在请求Http资源的时候先将他转成Https再请求。

第三种方法:

可以在nginx里面解决
在nginx可通过在server添加

add_header Content-Security-Policy upgrade-insecure-requests;

解决

用python生成golang支持的所有交叉编译环境脚本

虽然标题有些奇葩,但是对于我这个强迫症来说,每次golang版本更新,第一件事就是把常见的交叉编译环境给弄好,每次都写也挺麻烦,再加上随着golang版本的升级,支持的GOARCH和GOOS也不断的变多,也懒得去查wiki或者手册,就直接用下面的代码生成吧

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

__author__ = 'Chungpei Wang'
import os
import json

if __name__ == '__main__':
    env_dist = os.environ
    goroot = env_dist['GOROOT']
    gocmd = os.path.join(goroot, "bin", "go")
    result = os.popen(gocmd + " tool dist list -json")
    strresult = result.read()
    jsonresult = json.loads(strresult)
    shell_content = "#!/bin/bash" + os.linesep * 2 + "export CGO_ENABLED=0" + os.linesep * 2
    # 仅仅是因为强迫症,按照GOARCH进行排序,这样看起来整齐点
    jsonresult.sort(key=lambda k: (k.get('GOARCH', 0)))
    for data in jsonresult:
        shell_content += "export GOARCH=" + data['GOARCH'] + os.linesep
        shell_content += "export GOOS=" + data['GOOS'] + os.linesep
        shell_content += "./make.bash --no-clean" + os.linesep
        shell_content += os.linesep
    print(shell_content)

即:

1.先从系统环境变量中获取到$GOROOT
2.再执行$GOROOT/bin/go tool list list -json,获取对应版本golang所支持的所有GOARCH和GOOS
3.依次export GOARCH、GOOS,并执行make.bash(windows下应该改为make.bat)

解决outlook 2016 for mac 无法全文检索邮件

1.关闭所有office应用(含outlook)
2.进入终端命令行:

#关闭索引
sudo mdutil -i off
#删除索引
sudo mdutil -E 
#重建索引
sudo mdutil -i on / 

3.为outlook邮件创建索引,完全复制运行此命令

mdimport -g /Applications/Microsoft\ Outlook.app/Contents/Library/Spotlight/Microsoft\ Outlook\ Spotlight\ Importer.mdimporter -d1 ~/Library/Group\ Containers/UBF8T346G9.Office/Outlook/Outlook\ 15\ Profiles/Main\ Profile

通过以上命令操作完成,打开outlook2016就可以搜索了

解决golang ssh包报错 ssh: must specify HostKeyCallback

client, err := ssh.Dial("tcp", "192.168.1.71:22", &ssh.ClientConfig{
        User: "kevin",
        Auth: []ssh.AuthMethod{
            ssh.Password("123456"),
        },
        //需要验证服务端,不做验证返回nil就可以,点击HostKeyCallback看源码就知道了
        HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
            return nil
        },
    })
    fmt.Println(err)
    fmt.Println(client)

国内安装golang.org下的包(如net、crypto等)

因为某些不可描述的原因,在国内环境下使用

go get golang.org/x/net

是无法下载成功的,比较幸运的是,golang目前所有源码已经托管在github.com上,仔细观察下载路径,其实可以采用变通的方式解决这个问题

golang.org/x/net 其实对应了 github.com/golang/net,即golang上的x/??? 直接对应了github上的 ???
我们可以先

go get github.com/golang/net

将对应的包下载到$GOPATH中,再进入$GOPATH/src路径下

mv github.com/golang/net golang.org/x/net

这里需要注意根据操作系统的不同,可能需要预先根据url创建好各层文件夹

另一侧解决办法,访问以下网站手动下载包
https://gopm.io/download