9月 20

nginx1.9 etag修改

  之前用nginx和第三方etag模块,配置如下。

FileETag on;
etag_format “%X%X”;

  nginx1.3.3后原生就支持etag,默认开启。通过学习进行如下修改。

  RFC2616(ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt)对HTTP协议的规定,如果第一次请求资源正常,返回状态码200,第二次请求会在请求头里增加If-Modified-Since,如果If-Modified-Since是最后修改时间点,表示该资源没被修改,则http返回状态代码304,在相响应头中增加Last-Modified。这样该资源就不会被重复下载。nginx1.9.4配置修改如下。

location ~ .*\.(gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|xml|txt|flv|swf|mid|doc|cur|xls|pdf|txt|)$
{
etag on;
expires 1h;
}
此部分内容应该是与权限无关的资源部分。如果是使用安全链接,保证session安全,请求链接会有随机数或算法变化,每次的链接都不同。此部分还会消耗CPU,就达不到节约带宽的目的了。

3月 15

nginx+tomcat 使用https

操作系统上安装openssl。通过“nginx -V”查看是否有with-nginx-ssl模块安装。如果正常继续向下。
在ngixn的conf下执行以下命令生成证书。
#openssl genrsa -out www.simonzhang.net.key 1024
#openssl req -new -key www.simonzhang.net.key -out www.simonzhang.net.csr
执行完后会填写相关信息。我生成的密码为空,后面一路回车。
#openssl x509 -days 3650 -req -in www.simonzhang.net.csr -signkey www.simonzhang.net.key -out www.simonzhang.net.crt

nginx配置
之前的配置
server {
listen 80;
server_name www.simonzhang.net;
修改为
server {
listen 443;
server_name www.simonzhang.net;
ssl on;
ssl_certificate www.simonzhang.net.crt;
ssl_certificate_key www.simonzhang.net.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

nginx测试后重新导入配置生效。