分类 nginx 下的文章 - 青蓝鱼的博客-没有bug的代码是不完美的
分类 nginx 下的文章 - 青蓝鱼的博客-没有bug的代码是不完美的
终于找到这篇文章了,感谢作者的分享!
https://fishfive.top/index.php/archives/29/
终于找到这篇文章了,感谢作者的分享!
受益匪浅,感谢博主。
该回复疑似异常,已被系统拦截!
1
111
666
# 图片回复
666
学到了
666
hello word
首页
关于
?
归档
留言
统计
导航
更多
github
友链
推荐
百度
搜 索
1
Nginx-Quic重新编译Nginx支持HTTP3
356 阅读
2
Centos7和Centos8网卡配置
269 阅读
3
六种好看的css按钮效果
189 阅读
4
node.js简单的web服务demo
159 阅读
5
JavaScript实现静态图片局部流动效果
156 阅读
默认分类
html
css
JavaScript
React
Vue
Git
centos
node.js
php
nginx
http
登录
搜 索
https://fishfive.top
累计撰写
27
篇文章
累计收到
16
条评论
首页
栏目
默认分类
html
css
JavaScript
React
Vue
Git
centos
node.js
php
nginx
http
页面
关于
归档
留言
统计
导航
github
友链
推荐
百度
用户登录
登录
找到
2
篇与
nginx
相关的结果
2022-05-30
Nginx 设置 ngx_pagespeed
重新编译#进入 nginx 源码同级目录,比如在 /usr/local/src #下载模块 wget -O ngx_pagespeed-release-1.9.32.6-beta.tar.gz https://codeload.github.com/pagespeed/ngx_pagespeed/tar.gz/release-1.9.32.6-beta #解压 tar zxvf ngx_pagespeed-release-1.9.32.6-beta.tar.gz #下载psol优化库 cd ngx_pagespeed-release-1.9.32.6-beta wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz #解压psol tar zxvf 1.9.32.6.tar.gz #查看现有nginx的编译参数 /usr/local/nginx/sbin/nginx -V #重新编译nginx,新增pagespeed模块 cd /usr/local/src/nginx-1.60 ./configure --add-module=../ngx_pagespeed-release-1.9.32.6-beta 后面接上上一步查询到的参数缓存文件夹用户存放 PageSpeed 优化图片、JS、CSS等文件后的临时文件,很多教程都选择挂载在 /var 目录下,如果是一些云服务器,我倒是建议放在挂载磁盘的目录下。例如我的服务器将云盘挂载在 /data 目录下,那么,创建缓存文件,chown —R 给予的权限和 Nginx 的用户一致:mkdir /data/ngx_pagespeed/chown -R www /data/ngx_pagespeed/修改配置编辑网站的 nginx 配置文件在 server 段内添加: # on 启用,off 关闭 pagespeed on; # 重置 http Vary 头 pagespeed RespectVary on; # html字符转小写 pagespeed LowercaseHtmlNames on; # 压缩带 Cache-Control: no-transform 标记的资源 pagespeed DisableRewriteOnNoTransform off; # 相对URL pagespeed PreserveUrlRelativity on; # X-Header 值,用于判断是否生效 pagespeed XHeaderValue "Powered By fishfive.top"; # 配置服务器缓存位置和自动清除触发条件(空间大小、时限) pagespeed FileCachePath "/data/ngx_pagespeed/"; pagespeed FileCacheSizeKb 2048000; pagespeed FileCacheCleanIntervalMs 43200000; pagespeed FileCacheInodeLimit 500000; # 过滤规则 pagespeed RewriteLevel PassThrough; # 过滤WordPress的后台(可选配置,可参考使用) pagespeed Disallow "*/wp-admin/*"; pagespeed Disallow "*/wp-login.php*"; # 移除不必要的url前缀,开启可能会导致某些自动加载功能失效 #pagespeed EnableFilters trim_urls; # 移除 html 空白 pagespeed EnableFilters collapse_whitespace; # 移除 html 注释 pagespeed EnableFilters remove_comments; # DNS 预加载 pagespeed EnableFilters insert_dns_prefetch; # 压缩CSS pagespeed EnableFilters rewrite_css; # 合并CSS pagespeed EnableFilters combine_css; # 重写CSS,优化加载渲染页面的CSS规则 pagespeed EnableFilters prioritize_critical_css; # google字体直接写入html 目的是减少浏览器请求和DNS查询 pagespeed EnableFilters inline_google_font_css; # 压缩js pagespeed EnableFilters rewrite_javascript; # 合并js pagespeed EnableFilters combine_javascript; # 优化内嵌样式属性 pagespeed EnableFilters rewrite_style_attributes; # 压缩图片 pagespeed EnableFilters rewrite_images; # 不加载显示区域以外的图片 pagespeed LazyloadImagesAfterOnload off; # 图片预加载 pagespeed EnableFilters inline_preview_images; # 移动端图片自适应重置 pagespeed EnableFilters resize_mobile_images; # 图片延迟加载 pagespeed EnableFilters lazyload_images; # 雪碧图片,图标很多的时候很有用 pagespeed EnableFilters sprite_images; # 扩展缓存 改善页面资源的可缓存性 pagespeed EnableFilters extend_cache; # 将 meta 转换为 header location ~ "\.pagespeed\.([a-z]\.)?[a-z]\.[^.]\.[^.]+" location ~ "^/ngx_pagespeed_static/" location ~ "^/ngx_pagespeed_beacon$" location /ngx_pagespeed_statistics location /ngx_pagespeed_message 更多的设置文档请翻看:https://modpagespeed.com/doc/外部缓存PageSpeed 还支持以 Memcached 和 Redis 作为外部缓存,来拓展性能。Redis 支持在配置中加入:pagespeed RedisServer "host:port";设置连接失败后的等待时间,默认 1s(可选):pagespeed RedisReconnectionDelayMs timeout_in_milliseconds;Memcached 支持在配置中加入:pagespeed MemcachedServers "host:port";设置连接失败后的等待时间,默认 1s(可选):pagespeed MemcachedTimeoutUs timeout_in_microseconds;重启生效先判断是否有错误, SSH 中输入如下值后回车:nginx -t如果返回:root@MF8.BIZ:~# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful即可,重启以生效 PageSpeed 的设置:service nginx restart 或 systemctl restart nginx清理缓存开启 PageSpeed 后,如果原来的 CSS 和 JS 发生变动话的,不清理缓存是不会生效的,需要清理缓存的时候:touch /data/pagespeed/cache.flush运行上述语句即可, 其中 /var/cache/pagespeed/ 为配置文件中,pagespeed FileCachePath "/var/cache/pagespeed/"; 设置的目录。
2022年05月30日
75 阅读
0 评论
0 点赞
2022-04-11
Nginx-Quic重新编译Nginx支持HTTP3
HTTP3协议HTTP/3 的基础即谷歌多年探索的基于 UDP 的 QUIC 协议。与 TCP 相比,使用 UDP 可以提供更大的灵活性,并且可以使 QUIC 完全于用户空间中实现——对协议实现的更新不像 TCP 那样需要绑定到操作系统更新。使用 QUIC,可以简单地将 HTTP 级别的流映射到 QUIC 流的顶部,从而继承 HTTP/2 的所有优点,而不会产生队头阻塞。HTTP/3 虽仍处于草案状态,但很多用户已经跃跃欲试。优势HTTP/3 利用 QUIC 加速 HTTP 请求,QUIC 提供比 TCP 和 TLS 更高的加密和性能QUIC 是一种默认加密的新传输协议,旨在加快 HTTP 传输速度以及使其更加安全HTTP/3 基于 UDP,如果数据包丢失,只会中断一个流,而不会中断所有流,提高了同时获取多个对象的性能支持 0-RTT,消除服务器的 TLS 确认,使后续连接的启动速度更快.Nginx-Quic项目Nginx-Quic项目是Nginx官方推出的,跟上面说的Cloudflare的quiche没有关系,只是在Nginx的主线(mainline)版本的基础上推出的实验性质的项目,根据Nginx官方文档的说法,这项目是quic的分支,目前Nginx的版本为最新的Nginx 1.19.6,以后可能会将HTTP3相关功能合并进主线。正因为是实验性质项目,所以官方也不推荐在正式环境使用,但是我一个小博客,怕啥,不差这一回当小白鼠了,毕竟折腾的过程才是最有意思的。安装相关的依赖环境为了实现QUIC,NGINX编译必须用到quiche的相关库及BoringSSL的库文件,BoringSSL编译需要CMake 3.0或更高版本 、 需要Perl 、GCC、Clang 、Go环境。QUICHE需要 Rust 1.38或更高版本才能构建。CMAKE# 前往 https://cmake.org/files/ 选择最新版本下载 wget https://cmake.org/files/v3.21/cmake-3.21.0-rc2.tar.gz tar xvzf cmake-3.21.0-rc2.tar.gz cd cmake-3.21.0-rc2/ ./bootstrap make make installPERL# 前往 https://www.cpan.org/src/ 选择最新版本下载 wget https://www.cpan.org/src/5.0/perl-5.34.0.tar.gz tar -xzf perl-5.34.0.tar.gz # 编译安装 cd perl-5.34.0 ./Configure -des -Dprefix=/usr/mysf make make test make install # 建立新的软链接 mv /usr/bin/perl /usr/bin/perl.bak ln -s /usr/mysf/bin/perl /usr/bin/perl # 检查是否安装成功 perl -vRustcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shGolangwget https://golang.org/dl/go1.17.1.linux-amd64.tar.gz tar -zxvf go1.17.1.linux-amd64.tar.gz -C /usr/local # 修改系统默认的go文件 ln -s /usr/local/go/bin/go /usr/bin/go #环境变量 export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=/home/gopath #环境变量请根据实际情况配置,如果没有特殊要求可以使用上方指令 BoringSSLgit clone --depth=1 https://github.com/google/boringssl.git cd boringssl mkdir build cd build cmake -GNinja .. ninja cd ../.. mkdir -p boringssl/.openssl/lib cp boringssl/build/crypto/libcrypto.a boringssl/build/ssl/libssl.a boringssl/.openssl/lib cd boringssl/.openssl ln -s ../include . cd ../..编译Nginx-Quic剩下的nginx的编译安装步骤就和正常的nginx编译安装基本一致,只是需要额外的参数来开启HTTP/3支持并使用Boringssl替代默认的OpensslNginx-Quic分支的官网是:hg.nginx.org/nginx-quic由于仍在开发所以没有稳定版本,前往官网后找到左侧栏中的“tar”按钮,点击下载后重命名为 nginx-quic.tar.gz 后上传到服务器即可。#假设你已经上传nginx-quic.tar.gz tar -zxvf nginx-quic.tar.gz cd nginx-quic #请根据自身需求更改下列指令参数,下方只是一个最基础的版本 ./auto/configure --prefix=/www/nginx --with-http_ssl_module --with-http_v2_module --with-http_v3_module --with-http_gzip_static_module --with-cc-opt="-I../boringssl/include" --with-ld-opt="-L../boringssl/build/ssl -L../boringssl/build/crypto" #最后编译即可 make && make install编写配置文件以下是一个最基础的配置文件,请根据自己的需要进行更改server { listen 80; listen 443 ssl http2; listen 443 http3 quic reuseport; # UDP listener for QUIC+HTTP/3 server_name blog.nannan.cool; #以下为TLS配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ecdh_curve X25519:P-256:P-384; ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:EECDH+CHACHA20:EECDH+AES128; ssl_certificate /www/nginx/ssl/blog_nannan/certificate.pem; ssl_certificate_key /www/nginx/ssl/blog_nannan/private.key; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; # 该选项用于开启address validation,但是会和下方的0-RTT冲突 #quic_retry on; # 开启 TLS 1.3 0-RTT ssl_early_data on; # 添加 Early-Data 头告知后端, 防止重放攻击 proxy_set_header Early-Data $ssl_early_data; # 参考nginx官方目前支持的http3版本,我们添加对应的header add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"'; #HTTP_TO_HTTPS_START if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } #HTTP_TO_HTTPS_END }测试:当你修改完配置文件后,请重启你的Nginx服务,然后就可以前往 Geekflare 的 HTTP3 测试工具去测试你的网站啦!https://www.http3check.net 网站提供了网站的HTTP/3支持检测以下是我的博客测试的结果,如果你按照上面的方法进行了配置的话,应该也是可以成功的。
2022年04月11日
356 阅读
0 评论
0 点赞