Laravel 5.5官方推荐的Nginx配置学习教程


Posted in PHP onOctober 06, 2017

前言

本文主要给大家介绍了关于Laravel 5.5官方推荐的Nginx配置的想内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍把。

Laravel 5.5 版本官方放出了 Nginx 服务器的配置,中文文档:服务器配置 Nginx

server {
 listen 80;
 server_name example.com;
 root /example.com/public;

 add_header X-Frame-Options "SAMEORIGIN"; 
 add_header X-XSS-Protection "1; mode=block"; 
 add_header X-Content-Type-Options "nosniff"; 

 index index.html index.htm index.php;

 charset utf-8;

 location / {
 try_files $uri $uri/ /index.php?$query_string;
 }

 location = /favicon.ico { access_log off; log_not_found off; } 
 location = /robots.txt { access_log off; log_not_found off; } 

 error_page 404 /index.php;

 location ~ \.php$ {
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
 }

 location ~ /\.(?!well-known).* {
 deny all;
 }
}

自己并不擅长 Nginx,相信很多朋友跟我一样,让我们一起学习下 Nginx 的相关知识 : )

1. add_header X-Frame-Options "SAMEORIGIN";

X-Frame-Options 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

X-Frame-Options 有三个值:

DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。
该响应头设置应该比较常见,之前国外客户的安全团队有使用工具扫描我们项目的相关漏洞,其中就有这个 clickjacking 的问题,最终也是通过该设置来解决此问题。

2. add_header X-XSS-Protection "1; mode=block";

XSS 是跨站脚本攻击,是比较常见的网络攻击手段,改字段指示浏览器是否为当前页面开启浏览器内建的 XSS 过滤机制。 1 表示允许过滤器,mode=block 指示浏览器在检测到 XSS 攻击后禁止加载整个页面。

参考文章: 先知XSS挑战赛 知识点提要

3. add_header X-Content-Type-Options "nosniff";

该响应头设置禁用浏览器对 Content-Type 类型进行猜测的行为。因为很多情况下服务器并没有很好的配置 Content-Type 类型,因此浏览器会根据文档的数据特征来确定类型,比如攻击者可以让原本解析为图片的请求被解析为 JavaScript。

我们发现以上三个比较常见的防攻击配置,还是非常实用的,建议使用,之前我们的服务器只使用了 add_header X-Frame-Options "SAMEORIGIN"; 配置。

4. 不记录 favicon.ico 和 robots.txt 日志

location = /favicon.ico { access_log off; log_not_found off; }
 location = /robots.txt { access_log off; log_not_found off; }

favicon.ico 网站头像,默认是浏览器标签页上网站小图标以及收藏时显示的小图标。

如果未在html header中指定 favicon.ico 那么浏览器默认会去访问 http://xxx.com/favicon.ico , 不存在此文件的话,那么会导致404,同时会记录到 access_log 和 error_log 中。这种记录到日志文件中是没有必要性的,因此可以取消。

robots.txt 通常是搜索引擎蜘蛛(爬虫)会去爬取的文件,在行业规范中,蜘蛛去爬取一个网站的时候会首先爬取该文件来获知网站中哪些目录文件不需要爬取,在 SEO 中 robots.txt 的正确配置是对 SEO 非常有效果的。该文件也确实没有必要记录到日志中,而且大部分网站并不存在 robots.txt 文件。

以上这些配置是可以用在大部分的网站上的,不止是 Nginx 服务器,相信 Apache 服务器也有相关的配置,如果你正在用其他web服务器,以上类似的配置也建议使用。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
PHP代码优化技巧小结
Sep 29 PHP
php生成curl命令行的方法
Dec 14 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
php判断文件上传图片格式的实例详解
Sep 30 #PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 #PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 #PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 #PHP
php使用curl下载指定大小的文件实例代码
Sep 30 #PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 #PHP
PHP 获取 ping 时间的实现方法
Sep 29 #PHP
You might like
详解js异步文件加载器
2016/01/24 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
Vue数据双向绑定原理及简单实现方法
2018/05/18 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
tensorflow 查看梯度方式
2020/02/04 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
文明寝室标语
2014/06/13 职场文书
促销活动总结模板
2014/07/01 职场文书
党的生日活动方案
2014/08/15 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Pytorch可视化的几种实现方法
2021/06/10 Python
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript