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

前言

本文主要给大家介绍了关于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服务器,以上类似的配置也建议使用。

总结

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

时间: 2024-09-20 08:59:44

Laravel 5.5官方推荐的Nginx配置学习教程的相关文章

Nginx配置入门教程_nginx

基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代理服务器作为客户端这边的中介接受请求,隐藏掉真实的客户,向服务器获取资源.如果代理服务器在长城外的话还能顺便帮助我们实现翻越长城的目的.而反向代理顾名思义就是反过来代理服务器作为服务器的中介,隐藏掉真实提供服务的服务器,原理大致如下图:   这么做当然不是为了实现翻越长城,而是为了实现安全和负载均衡等一系列的功能.所谓安全指客户端的请求不会直接落到内网的

docker服务confd安装配置学习教程

confd confd通过读取配置(支持etcd,consul,环境变量),通过go的模板,生成最终的配置文件. 安装 安装和etcd一样,非常方便,已经提供了64位的可执行程序,下载下来之后直接放到PATH中(/usr/local/bin)即可(别忘了+x). haproxy配置生成 confd配置文件默认在/etc/confd中,可以通过参数-confdir指定.目录中包含两个子目录,分别是:conf.d templates. confd会先读取conf.d目录中的配置文件(toml格式),

怪物猎人online28日首测 官方推荐配置公布

临近盛夏,由动作天尊CAPCOM(嘉富康)和腾讯游戏联合出品,全新CryEngine3引擎打造的次世代动作网游巨作<http://www.aliyun.com/zixun/aggregation/22214.html">怪物猎人OL>,即将迎来于6月28日的首猎封测. <怪物猎人OL> 虽然这款大作在全球范围内拥有超过2200万的忠实粉丝,但这次首猎封测,是为检测游戏的核心动作体验,因此官方通过"千题狩猎"等活动,仅向骨灰级玩家发放了将千余个激活

Nginx配置负载均衡

一,Nginx常用命令            1) 启动Nginx:start nginx 2) 停止Nginx:nginx -s stop 3) 修改配置后重启:nginx -s reload 二,以Tomcat服务器为例进行负载均衡设置     为了简单,我直接在windows解压了个nginx-1.10.0.zip.     之后再myeclipse里面部署了同一个项目,为了方便,第一个项目我设置的起始页面为:      /*测试nginx*/ @RequestMapping("/home

nginx配置详解-url重写、反向代理、负载均衡

应用层的负载均衡 master/worker结构:一个master进程,生成一个或多个worker子进程 nginx请求的连接方式epoll 是Linux下多路复用IO接口select/poll的增强版本 select 遍历epoll无需遍历 1.nginx安装(未安装邮件服务器模块) ./configure --help查看编译选项 配置文件中路径没加/以prefix指定的路径开始./configure \--prefix=/usr \--sbin-path=/usr/sbin/nginx \

hibernate-Hibernate官方推荐使用many-to-many还是many-to-one?

问题描述 Hibernate官方推荐使用many-to-many还是many-to-one? 假设实体的关系就是多对多,我应该是在数据库中创建两张表,还是三张表? 如果创建两张表,那么就需要在xml中配置many-to-many 如果创建三张表,那么就需要在第三张的表中存储其余两个表的主键,在xml中直接配置many-to-one 这两种方式那个好? 解决方案 具体使用哪种应该由你的业务决定的吧,如果是多对一的关系就使用many-to-one例如一个人有多个邮箱地址:多对多关系,例如选课一个人可

Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式_nginx

概述 在上一篇文章Nginx配置Thinkphp支持URL Rewrite中已经介绍了如何配置Nginx支持ThinkPHP的URL Rewrite,但是上文针对的是Centos平台,这次因为某些特殊的原因,服务器环境必须用ubuntu,本来以为和Cetons中一模一样,但是配置完了发现不能使用,所以就百度了一些文章. 配置方法TP官方解决方案 复制代码 代码如下: location ~ .php         {                 #原有代码                  

nginx中配置php-FPM教程详解

nginx中配置php-FPM教程 nginx 可以直接调用FPM来驱动php,从此就可以放弃apache了.什么原因不多说了. 先下载php5.4的安装包. 照别人的说法  代码如下 复制代码 ./configure --enable-fastcgi --prefix=/data1/server/php-cgi --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-mysql

centos中nginx配置markdown 编辑器例子

先说一下实现的原理,当然此文章主要讲了我的实现,当然还有其他的实现方式,原理都是差不多的. 首先,我们需要安装kramdown解释器,这个很好理解吧,和php一样,他的特点标签能够实现渲染肯定需要解释器来解析,这里kramdown解释器的官网为http://kramdown.gettalong.org/installation.html,这是安装界面,根据自己的系统安装即可,不过他需要安装ruby依赖.然后我通过nginx的url转发,将.md的文档转发给一个php文件来处理,这个php文件,就