-
Notifications
You must be signed in to change notification settings - Fork 3
nginx
李小明 edited this page Jun 5, 2020
·
9 revisions
编译启用并配置 gzip_static 参考 , 文件使用gzip命令压缩成gz后缀格式.
压缩命令:
$ gzip --best lilu.wasm
小心host not found in upstream错误导致nginx无法启动, 特别是系统重启时很容易出问题. 原因就是nginx会检查域名, 一旦解析速度慢点就报错了. 好像没有很好的解决办法, 最好不用域名.
按照文档配置WebSocket代理后, 偶尔遇到连接失去响应问题. 经过测试发现这个问题很奇怪, 并不是消息大小引发. 例如netty后端返回如下数据:
StringBuilder sb = new StringBuilder();
int i = 0;
while (i < 1000000) {
i++;
sb.append("字");
sb.append(i);
}
ctx.writeAndFlush(
new TextWebSocketFrame(sb.toString())
);
此时Chrome上没有任何响应. 起初以为是Chrome问题,但去除nginx代理后正常. 如果去掉 sb.append(i);
,就算返回一千万个"字"也是正常的...
proxy_pass时,nginx会剔除所有名称中含下划线的Header.所以如果你希望Header能被传递到最终服务中,使用X-a-b
形式的名称作为Header名.
对域名及IP均有效.
http
{
server
{
listen 80;
return 301 https://$host$request_uri;
}
server
{
listen 443 ssl;
ssl on;
ssl_session_cache shared:SSL:15m;
ssl_session_timeout 15m;
ssl_certificate /path.crt;
ssl_certificate_key /path.key;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
root /web;
location / {
index index.html;
}
}
}
此方法使用域名时对默认端口没有作用.
http
{
server
{
listen 444 ssl;
error_page 497 https://$host:444$request_uri;
ssl on;
ssl_session_cache shared:SSL:15m;
ssl_session_timeout 15m;
ssl_certificate /path.crt;
ssl_certificate_key /path.key;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
root /path;
location / {
index index.html;
}
}
}