近期学习的Nginx知识笔记,内容原创,转载请注明来源!
今天下午,对diannao120.top完成了一次从Tomcat到Nginx的大迁移,迁移内容包括一级目录、二级目录和SSL证书,紧接着针对nginx优化了客户端访问及缓存机制,最后还意外地实现了一次简单的页面优化。
废话不说,直接上代码:
server {
listen 80;
server_name diannao120.top;
expires 1d;
#针对http协议的重定向
rewrite ^(.*)$ https://$host$1 permanent;
location / {
index index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#本段原则上讲可删除,严谨起见加上了
server {
listen 80;
expires 1d;
server_name 127.0.0.1;
return 301 $scheme://127.0.0.1;
}
server {
listen 443 ssl;
#下面是服务器ip,安全起见,用xx表示
server_name xx.xx.xx.xx;
expires 1d;
#下面是证书位置,安全起见,用xxx表示
ssl_certificate C:/xxx/xxx.pem;
ssl_certificate_key C:/xxx/xxx.key;
return 301 $scheme://127.0.0.1;
}
server {
listen 443 ssl;
server_name diannao120.top diannao120.top/blog www.diannao120.top www.diannao120.top/blog ;
expires 1d;
ssl_certificate C:/xxx/xxx.pem;
ssl_certificate_key C:/xxx/xxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#socket安全校验码,用xxxxxx表示
ssl_ciphers xxxxxx;
ssl_prefer_server_ciphers on;
location /blog {
root C:/xxxx/;
index index.html index.htm;
}
location / {
root C:/xxx/ROOT;
index index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 443 ssl;
server_name 127.0.0.1;
expires 1d;
ssl_certificate C:/xxx/xxx.pem;
ssl_certificate_key C:/xxx/xxx.key;
}
看起来挺简单的,但实际上踩了不少的坑,将其与主要内容一并整理如下:
- 重定向使用了正则表达式
- expires 1d表示用户端缓存1天,1h是一小时,1y是一年(分别对应Cache-Control: max-age=86400;Cache-Control: max-age=3600;Cache-Control: max-age=31536000),使用此方法在用户重复访问时能够极大地节约服务器资源(用户优先从memory cache和disk cache中寻找),配置过程可在审查元素中检验
- 既然使用socket加密,404要在ssl服务器有对应
- 多个server并存时,一定要注意逻辑上的先后顺序
- 配置socket时,ssl一定不要少,否则ng可能无法开启(阿里云这么说的)
- 多个server name时,中间以空格隔开
- www.应被理解为二级域名(待向大佬求证)
- 用location指定二级目录时,其root只需到达其上一层目录(被这个问题困扰了近1小时)
- could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32报错时,在配置文件的http{}段增加一行配置server_names_hash_bucket_size 64;如果64还不够,那么就按32的倍数往上加。
- 速度优化:之前发现有一栏目访问极慢,仔细查看不难发现其以来的很多js和css在各种各样的CDN服务器上,把其迁移到自己的云服务器,访问速度顿时快了几十倍!
参考资料:
https://segmentfault.com/a/1190000009237425
https://blog.csdn.net/tjcyjd/article/details/50897959
https://www.cnblogs.com/wenyule/p/11073277.html
https://blog.csdn.net/tianmohust/article/details/8472102
https://www.cnblogs.com/lovelinux199075/p/9057526.html
https://www.jb51.net/article/26412.htm
https://blog.csdn.net/tianmohust/article/details/7037290
https://help.aliyun.com/document_detail/98728.html?spm=5176.2020520154.cas.13.654356a7q6YyvL
笔记内容原创,转载请注明来源!
版权属于:soarli
本文链接:https://blog.soarli.top/archives/27.html
转载时须注明出处及本声明。