因为启用了 ConvertEmptyStringsToNull 这个中间件导致的关闭即可
produced an unexpected error: ‘ascii’ codec can’t decode byte 0xe9 in position
把配置文件里的中文字符串删除就好了
- $ sudo grep -r -P ‘[^\x00-\x7f]’ /etc/apache2 /etc/letsencrypt /etc/nginx
- 將看到的內容,全部進去檔案刪除
- 刪除這些編碼後,在重新執行 Let’s encrypt script 就可以通過囉~
Attempting to renew cert (www.xxx.com) from /etc/letsencrypt/renewal/www.xxx.com.conf produced an unexpected error: 'ascii' codec can't decode byte 0xe9 in position 5: ordinal not in range(128). Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/m.xxx.com/fullchain.pem (failure)
/etc/letsencrypt/live/www.xxx.com/fullchain.pem (failure)
参考链接:https://blog.longwin.com.tw/2019/01/letsencrypt-ascii-codec-decode-fixed-2019/
Linux双网卡 双线 双网关 配置
2.增加2个路由表分别是电信:a0 联通:b1
# vi /etc/iproute2/rt_tables
252 a0
251 b1
ip route flush table a0
ip route add default via 172.31.16.1 dev eth0 src 172.31.17.107 table a0
ip rule add from 172.31.17.107 table a0
ip route flush table b1
ip route add default via 172.31.32.1 dev eth1 src 172.31.43.225 table b1
ip rule add from 172.31.43.225 table b1
The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console.
(1/1) Google_Service_Exception
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "projectNotLinked",
"message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
}
],
"code": 403,
"message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
}
}
android java gzip解压
public String decompress(byte[] compressed) throws IOException {
final int BUFFER_SIZE = 32;
ByteArrayInputStream is = new ByteArrayInputStream(compressed);
GZIPInputStream gis = new GZIPInputStream(is, BUFFER_SIZE);
StringBuilder string = new StringBuilder();
byte[] data = new byte[BUFFER_SIZE];
int bytesRead;
while ((bytesRead = gis.read(data)) != -1) {
string.append(new String(data, 0, bytesRead));
}
gis.close();
is.close();
return string.toString();
}
// 解压
String cc = "H4sIAAAAAAAAA3s6ddlTVAQAXAODIhIAAAA=";
try {
this.decryptedText.setText(this.decompress(Base64.decode(cc.toCharArray())));
} catch (IOException e) {
e.printStackTrace();
}
openssl_private_encrypt 最大只能加密117字符😂
On my PHP5 build, the limit is 117 characters (936 bits, strange number). That’s because public key encryption is CPU intensive, and meant to be used on short values. The idea is to use this function to encrypt a secret key that is in turn used to encrypt data using a more efficient algorithm, such as RC4 or TripleDES.openssl_public_encrypt
2019/08/21 14:39:53 [warn] 11628#11628: *2856217 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp
“GET /_nuxt/fonts/c61b9c1.woff2 HTTP/1.1”
“GET /_nuxt/e46e23e8722289834df1.js HTTP/1.1”
代理里请求比较大的静态文件导致的!
nginx: [warn] duplicate MIME type “text/html”
我检查配置文件发现疑似gzip漏写了text/html,加上去后反而报警告了,百度发现:
https://blog.csdn.net/liangyuannao/article/details/21378113
解决办法:去掉下面一行中的“text/html”。
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
原因:text/html根本就不需要写的,gzip默认就会压缩它的,只不过以前的nginx版本不提示这个警告而已,新版本的会出这个警告。
laravel 获取真实ip的事项
# 这个逻辑可以放在中间件里,判断白名单(127.0.0.1或你的其他代理服务器ip)
$ip = $request->ip();
if (in_array($ip, ['127.0.0.1']))
$request->setTrustedProxies($request->getClientIps(), Request::HEADER_X_FORWARDED_ALL);
# nginx 配套配置,如果你是nginx转发,按照这个标准来
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 获取IP
echo $request->ip();
X-Forwarded-For 相关连接:https://en.wikipedia.org/wiki/X-Forwarded-For
MongoDB 副本集指定主节点
cfg = rs.conf()
cfg.members[0].priority = 0.5
cfg.members[1].priority = 1
cfg.members[2].priority = 0.5
rs.reconfig(cfg)