Nginx拓展功能合集
一:NGINX跨域解决方式
- #是否允许请求带有验证信息
- add_header Access-Control-Allow-Credentials true;
- #允许跨域访问的域名,可以是一个域的列表,也可以是通配符*
- add_header Access-Control-Allow-Origin http://static.enjoy.com;
- #允许脚本访问的返回头
- add_header Access-Control-Allow-Headers 'x-requested-with,content-type,Cache-Control,Pragma,Date,x-timestamp';
- #允许使用的请求方法,以逗号隔开
- add_header Access-Control-Allow-Methods 'POST,GET,OPTIONS,PUT,DELETE';
- #允许自定义的头部,以逗号隔开,大小写不敏感
- add_header Access-Control-Expose-Headers 'WWW-Authenticate,Server-Authorization';
- #P3P支持跨域cookie操作
- add_header P3P 'policyref="/w3c/p3p.xml", CP="NOI DSP PSAa OUR BUS IND ONL UNI COM NAV INT LOC"';
- if ($request_method = 'OPTIONS') {##OPTIONS类的请求,是跨域先验请求
- return 204;##204代表ok
- }
nginx请求分为简单请求和复杂请求
①简单请求:
当发起简单请求时,网页请求头里包含了
这个信息,网页就知道你这个页面是允许跨域的,他就会请求这个域名的后台代码,发起跨域请求
②复杂请求:
当发起复杂请求的时候,上面的配置就不会生效了,因为当nginx检测后,发现你是复杂请求,他不会请求跨域的网站后台代码,他会先询问你的网页是否允许我跨域访问,你如果允许我跨域,那我就请求,不允许就报错。
起关键作用的就是
二:压缩文件
- location ~ /(.*)\.(html|js|css|png)$ {
- gzip on; # 启用gzip压缩,默认是off,不启用
- # 对js、css、jpg、png、gif格式的文件启用gzip压缩功能
- gzip_types application/javascript text/css image/jpeg image/png image/gif;
- gzip_min_length 1024; # 所压缩文件的最小值,小于这个的不会压缩
- gzip_buffers 4 1k; # 设置压缩响应的缓冲块的大小和个数,默认是内存一个页的大小
- gzip_comp_level 1; # 压缩水平,默认1。取值范围1-9,取值越大压缩比率越大,但越耗cpu时间
- root /etc/nginx/html/gzip;
- }
网络连接中,js,css等文件的大小有可能很大,一次请求传输的js,css文件中传输的时间会很大,所以nginx会将这些文件先压缩,然后再进行传输,以达到节省网络带宽,提高网站速度的作用.
三:防盗链(很少用)
- location ^~ /mall {
- valid_referers *.enjoy.com;##对referer进行校验
- if ($invalid_referer) {##校验不过,拒绝访问
- return 404;
- }
- root /etc/nginx/html/gzip;
- }
nginx会检测你的请求是否来自 *.enjoy.com 网站的请求,如果不是则返回404
Nginx拓展功能合集的更多相关文章
- Nginx小功能合集
13.1. 跨域处理 问题由来:浏览器拒绝执行其它域名下的ajax运作 ---如果浏览器在static.enjoy.com对应的html页面内,发起ajax请求偷盗www.enjoy.com域名下的内 ...
- Apache、tomcat、Nginx常用配置合集
配置文件地址: Apache: /etc/httpd/conf/httpd.conf tomcat: /usr/local/tomcat/conf/server.xml Nginx : /usr/l ...
- js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。
1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...
- Power BI 3-4月功能更新培训合集
Power BI 3-4月功能更新培训合集 Power BI每月功能的更新,都有很多大咖精辟解读,我们一直也都是积极中期待,相信所有P友如是或更甚. 视频学习可以结合微软Power BI 3-4月文 ...
- 中国国内 - 可用API合集
中国国内 - 可用API合集 收录一篇中国国内可用API合集,分享给大家 目录 笔记 出行 词典 电商 地图 电影 即时通讯 开发者网站 快递查询 旅游 社交 视频 天气 团队协作 图片与图像处理 外 ...
- JS中的动态合集与静态合集
JS的动态合集 前言 DOM是JavaScript重要组成部分,在DOM中有三个特别的集合分别是NodeList(节点的集合),NamedNodeMap(元素属性的集合)和HTMLCollection ...
- 最新最全的 Android 开源项目合集
原文链接:https://github.com/opendigg/awesome-github-android-ui 在 Github 上做了一个很新的 Android 开发相关开源项目汇总,涉及到 ...
- 【开发必备】2018最新中国国内可用API合集
中国国内可用API合集 笔记 OneNote - OneNote支持获取,复制,创建,更新,导入与导出笔记,支持为笔记添加多媒体内容,管理权限等.提供SDK和Demo. 为知笔记 - 为知笔记Wind ...
- Java 分布式框架面试题合集
Java 分布式框架面试题合集 1.什么是 ZooKeeper? 答:ZooKeeper 是一个开源的分布式应用程序协调服务,是一个典型的分布式数据一致性解决方案.设计目的是将那些复杂且容易出错的分布 ...
随机推荐
- zabbix 如何监控php-fpm?
zabbix监控php-fpm主要是通过nginx配置php-fpm的状态输出页面,在正则取值.要nginx能输出php-fpm的状态首先要先修改php-fpm的配置,没有开启nginx是没有法输出p ...
- linux基础知识-常用命令
ifconfig :查看当前ip hostname:查看主机名 vim /etc/hosts:修改地址映射 service iptables status : 查看防火墙状态 chkconfig ip ...
- 外部表及oracle数据库内存
create table alert1 (log varchar2(1000))2 organization external3 (type oracle_loader4 default direct ...
- 6.zabbix微信告警3.2
原文地址: https://blog.cactifans.com/2016/01/27/zabbix%E5%BE%AE%E4%BF%A1%E5%91%8A%E8%AD%A6/ pdf : 链接: ht ...
- PHP【Laravel】delayer基于redis的实现订单超时改变状态
实现这个功能前你需要知道以下,不然可能会比较吃力:1.服务器的计划任务,shell脚本,或者你有宝塔自带的计划任务会方便很多.2.有所了解Redis.3.会写PHP业务逻辑. 好了进入在正题,这里使用 ...
- SpringMVC·form表单Date类型问题导致的400问题
问题描述 前端传yyyy-MM-dd hh:mm:ss格式的时间其实是String类型导致JavaBean中的Date类型Setter报错,从而导致api请求400. 问题解决 我的解决方式: 在对应 ...
- Android获取手机和系统版本等信息的代码
有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,对比两部手机发现,厂商不同,某个信息显示方式也不尽相同,具体见: String phoneInfo = "Product: ...
- python数据结构:进制转化探索
*********************************第一部分*************************************************************** ...
- Java Software Engineer Skill Map
# Java Software Engineer Skill Map## Basic### Core Java- Java The Complete Reference Ninth Edition.p ...
- (59)C# IIS Express 设置
支持非localhost访问 本地测试时 修改 localhost改成127.0.0.1