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 相关文章推荐
模仿OSO的论坛(三)
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
PHP调用Webservice实例代码
Jul 29 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
PHP分页类集锦
Nov 18 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
php微信公众号开发之翻页查询
Oct 20 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
javascript数组去掉重复
2011/05/12 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
大学生自我评价怎样写好
2013/10/23 职场文书
跟单文员的岗位职责
2013/11/14 职场文书
体育教育个人自荐信范文
2013/12/01 职场文书
青奥会口号
2014/06/12 职场文书
贫困证明书范文
2015/06/16 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL