当前位置: 首页 > 编程日记 > 正文

Nginx 配置

content_by_lua ‘’;
set_by_lua $c "return ngx.var.a + ngx.var.b";
rewrite_by_lua "ngx.var.a = ngx.var.a + 1";
access_by_lua 'if ngx.var.remote_addr == "127.0.0.1" thenreturnendngx.exit(403)';

虚拟主机

server_name  .a.org; #可以用正则表达式 *.a.org 跟a.org 可以合并为 .a.org 多个域名并排,空格分隔

显示目录或文件

autoindex on;
autoindex_exact_size on; #显示文件大小
autoindex_localtime on; #显示最后修改时间

压缩返回

gzip on;
gzip_types text/plain application/x-javascript text/css application/xml; #指定类型文件压缩
gzip_min_length 1000; 
gzip_buffers 4 8k;

默认读取的文件

index index.php index.html index.htm;

设置网站的根目录

root /var/nginx/avdata/public_html; #确保有目录权限x

默认请求处理

location / { #默认的处理try_files $uri $uri/ index.php?$args;
}

默认处理的匹配方式 配置的$uri 即不包含参数以/开头的请求地址

~ 区分大小写正则匹配

~* 不区分大小写正则匹配

^~ 如果匹配之后将停止往下检查

= 完全相等

例:

 location ~ \.php$ {#匹配.php的请求
  
 try_files $uri $uri/ index.php?$args;#$args显示传递GET参数
       include fastcgi.conf;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php; }
location = index.php {#匹配index.php ,非页面上输入index.php的请求.页面上index.php的请求为/index.phpinclude fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;#$fastcgi_script_name默认跟$uri相同fastcgi_index index.php;
}

静态文件超时

location ~* \.(jpg|jpeg|gif|png|js|css)$ {#匹配指定结尾文件access_log off;#错误不记录日志expires 30d;#客户端缓存30天
}

通过规则:

{}里面的设置不影响外部的设置,

location / {root /var/nginx/a/public_html/hi;
}

外部的设置影响{}里的设置,所以可以在虚拟主机的外部定义root,全局共用

IP监听

listen       80; #IP:端口 或者直接端口,监听全部IP

简单重写代替

# 最后一个是处理方式或者是处理地址,之前的为文件或目录
# 找不到对应文件或目录将用最后一个作为请求代替
# $uri/ 以/结尾表示目录
try_files $uri $uri/ index.php;#文件或目录找不到的时候用index.php代替$uri

别名

location /i/ {alias /good/; #但$uri为/i/*规则的时候,$uri将被修改为/good/* 不能用于正则表达式内的location
}

禁止访问

location ~ \.db$ {#符合.db 结尾的文件禁止访问deny  all; 
}

指定IP访问

location ~ \.db$ {#本机可访问.db 结尾的文件allow 127.0.0.1;
}

其他权限:

location /hello {allow 127.0.0.1;
        deny all;
        echo "hello world";
    }

传输速度限制

#超过传输指定文件后限制速度
limit_rate_after 1m; limit_rate 100k;

404错误记录

log_not_found off;# 404错误不记录

定义静态404错误

        location / {//找不到文件定义状态吗try_files $uri $uri/  =404;
        }   
location ~ \.php$ {fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_intercept_errors on;//让错误显示到前端fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }   error_page   404  /404.html;//自定义404

规则:

~   为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
#ReWrite语法
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301

一些核心及内置变量:http://nginx.org/cn/docs/http/ngx_http_core_module.html

附属:

一般Nginx 变量值容器的生命期是与当前请求相关联的,有特殊的。
变量是声明的,非过程的

设置变量

set $a aaa;

输出变量

echo $a;
echo "a $a;"

正常下,$都将被转义 所以 通过以下办法定义有$字符的变量

geo $do {
default "$";
}

执行某个地址:

echo_exec /bar;
echo_location /bar "a=1&b=2";

获得参数:

$arg_*

输出指令不能有多条
配合echo的前后

echo_before_body "before...";
echo_after_body "after...";

处理顺序:

rewrite
access
content (echo proxy_pass 等)
index #(地址不为/弃权处理)
autoindex #(地址不为/弃权处理)
ngx_static
find-config
。。。
try-files /file1 /file2 =403 #(挨个尝试文件是否存在)

LUA 调用:

content_by_lua ‘ ngx.exit(403)’;
set_by_lua $c "return ngx.var.a + ngx.var.b";
rewrite_by_lua "ngx.var.a = ngx.var.a + 1";
access_by_lua 'if ngx.var.remote_addr == "127.0.0.1" thenreturnendngx.exit(403)';

示例:

    server {listen       80;
        server_name xx.com www.xx.com;
        gzip on;
        gzip_types text/plain application/x-javascript text/css application/xml;
        gzip_min_length 1000;
        gzip_buffers 4 8k;
        root    /var/www/xx/public_html/;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {root   html;
        }location / {index  index.php index.html index.htm;
            try_files $uri $uri/ index.php?$args;
        }location ~ \.(ico|gif|bmp|jpg|jpeg|png|swf|js|css) {expires 7d;
            try_files $uri $uri/ index.php?$args;
        }location ~ \.php$ {fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param KOHANA_ENV "TESTING";
            fastcgi_param  PHP_VALUE  "open_basedir=$document_root:/tmp/";
            include        fastcgi_params;
        }location = index.php {include fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root/index.php;
            fastcgi_param KOHANA_ENV "TESTING";
            fastcgi_param  PHP_VALUE  "open_basedir=$document_root:/tmp/";
            fastcgi_index index.php;
        }}

一般情况下记得把PHP某些函数禁用

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source,dl

disable_classes = perl

转载于:https://www.cnblogs.com/liushannet/archive/2013/01/07/2849585.html

相关文章:

cd: mkdir: rmdir: rm

1、1 绝对路径和相对路径绝对路径:是指在目录下的绝对位置,直接到的目标位置例如:只要看到这个路径:D:\图片\徐慧茹.jpg"文件是在D盘的“图片”目录中。类似这样完整的描述文件的路径就是绝对路径。相对路径&…

【Whalepaper】CV论文研读 - Involution内卷:超越Convolution的新算子

Whalepaper是由周郴莲负责的一个每周分享论文的活动,带你研读AI领域的论文,快来一起开源学术科研吧! NLP 论文分享:每周日 晚上 九点CV 论文分享: 每周日 晚上 九点Res 论文分享:每周六 晚上 九点半 欢迎…

UI培训分享:UI设计师要掌握哪些知识点

UI设计师除了要学会自己所在行业的技术之外,还要了解一些其他的知识点,这些知识点都会在今后的工作中带来帮助,甚至是加分项,那么下面来看看小编为大家介绍的UI培训分享:UI设计师要掌握哪些知识点? UI培训分享&#x…

JavaScript 关闭窗口事件

方式一&#xff1a;(适用与IE浏览器&#xff0c;而且刷新不提示&#xff0c;只在点击浏览器关闭按钮的时候提示) <script type"text/javascript"> window.οnbefοreunlοadonclose; function onclose() { if(event.clientX>document.body.clientWidth&…

【直播】闫强:文本分类上分利器 -- Bert微调技巧大全

文本分类上分利器 – Bert微调技巧大全 直播信息 主讲人&#xff1a;ChallengeHub成员&#xff0c;中国人民大学硕士。 直播时间&#xff1a;2021年07月25日 15:00~16:00 直播内容&#xff1a; 经典论文介绍与解读模型继续预训练实现交流&答疑 直播网址&#xff1a; …

计算机基础第二课时

文件后缀名 1.也称文件扩展名(filename extension) 2.是操作系统用来标志文件类型的一种机制 3.通常来说&#xff0c;一个扩展名是跟在主文件名后面的&#xff0c;由一个分隔符分隔。例如&#xff1a;“前端开发知识要点.txt”的文件名中&#xff0c;前端开发知识要点是主文件名…

ui培训教程分享:平面设计怎样视觉空间感?

本期UI培训教程为大家分享的是关于平面设计怎样视觉空间感?在UI设计岗位中&#xff0c;视觉空间感对于设计师来说是非常重要的&#xff0c;所谓空间&#xff0c;是指立体形态周围的空虚部分&#xff0c;空间是无限的。任何空间形态的建立都必须借助立体形态来表达&#xff0c;…

Android组件框架:Android组件管理者ActivityManager

关于作者 郭孝星&#xff0c;程序员&#xff0c;吉他手&#xff0c;主要从事Android平台基础架构方面的工作&#xff0c;欢迎交流技术方面的问题&#xff0c;可以去我的Github提issue或者发邮件至guoxiaoxingse163.com与我交流。 第一次阅览本系列文章&#xff0c;请参见导读&a…

[转]HTTP协议详解

当今web程序的开发技术真是百家争鸣&#xff0c;ASP.NET, PHP, JSP&#xff0c;Perl, AJAX 等等。 无论Web技术在未来如何发展&#xff0c;理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解&#xff0c;内…

【Whalepaper】NLP论文研读 - Keyword-Attentive Deep Semantic Matching

Whalepaper是由周郴莲负责的一个每周分享论文的活动&#xff0c;带你研读AI领域的论文&#xff0c;快来一起开源学术科研吧&#xff01; NLP 论文分享&#xff1a;每周日 晚上 九点CV 论文分享&#xff1a; 每周日 晚上 九点Res 论文分享&#xff1a;每周六 晚上 九点半 欢迎…

web前端的就业前景好不好

web前端的就业前景好不好?一直有人都想知道这个答案&#xff0c;其实放眼互联网未来&#xff0c;web前端的发展前景都是非常好的&#xff0c;那么它的就业前景自热也是不错&#xff0c;具体来看看下面的详细介绍就知道了。 web前端的就业前景好不好?近几年的热门行业里&#…

android:HTTP通信 .

HTTP&#xff1a; 超文本传送协议&#xff08;hypertext transport protocol&#xff09;&#xff0c;用于传送WWW方式的数据。属于应用层的面向对象的协议。HTTP采用了请求/响应模型。客户端向服务器发送的请求包含了&#xff1a;请求的方法、URL、协议版本、请求修饰符、客户…

【青少年编程】【三级】打气球游戏

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

(转)如何修改maven的默认jdk版本

背景&#xff1a;在maven的配置文件中配置编译的jdk插件&#xff0c;就不需要在eclipse中进行重新的指定了。 问题 1、创建maven项目的时候&#xff0c;jdk版本是1.5版本&#xff0c;而自己安装的是1.7或者1.8版本。 2、每次右键项目名-maven->update project 时候&#xff…

Python适合初学者或者0基础学习吗?

Python适合初学者或者0基础小白学习吗?很多人都比较关注这个问题&#xff0c;因为近几年Python在互联网行业的发展显而易见&#xff0c;它的就业几率也非常高&#xff0c;具体来看看下面的详细介绍吧。 Python适合初学者或者0基础小白学习吗?与Java、C不同的是&#xff0c;Py…

CS5中动作和批处理

动作类似office里的宏。 窗口---动作。排列过多的图片可以窗口---排列。 先新组&#xff0c;然后新动作&#xff0c;完成后停止录制&#xff1b;点击新图片使其成为当前图片&#xff0c;再点击播放动作。 一个新组下可以有很多动作。 动作定义为快捷键&#xff0c;使用时可以双…

Django模板过滤器详解

Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的&#xff0c;如显示格式的转换、判断处理等。以下是 Django 过滤器列表&#xff0c;希望对为大家的开发带来一些方便。 一、形式&#xff1a;小写   {{ name | lower }} 二、串联&#xff1a;先转义文…

【青少年编程】【三级】 魔术表演“开花”

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

Python培训教程分享:visual studio编写python怎么样?

本期小编要为大家介绍的Python培训教程就是关于“visual studio编写python怎么样?”的问题&#xff0c;但答案当然是可以的&#xff0c;据了解&#xff0c;vs2017、vs2019都集成了python开发&#xff0c;只不过需要在安装的时候单独勾选一下才行&#xff0c;下面小编简单介绍一…

HTTP头入门到精通(每一个HTTP消息头解释)

1. Accept&#xff1a;告诉WEB服务器自己接受什么介质类型&#xff0c;*/* 表示任何类型&#xff0c;type/* 表示该类型下的所有子类型&#xff0c;type/sub-type。 2. Accept-Charset&#xff1a; 浏览器申明自己接收的字符集 Accept-Encoding&#xff1a; 浏览器申明自己接收…

Day2 - Python基础2作业【文件操作--购物车程序(用户操作及商户操作)】

1 # ----user.txt----2 3 {已购商品: , 消费记录: , 余额: 0}4 5 6 # ----commodity.txt----7 8 iPhone,50009 HuaWei,3000 10 XiaoMi,2000 11 oppo,1000 1 #/usr/bin/env python2 #-*- coding:utf-8 -*-3 # Day2/file_shopping.py4 5 _author_ hepidong6 7 import time8 9 # …

【直播】林锦弘:CV赛事高分经验分享

CV赛事高分经验分享 直播信息 分享嘉宾&#xff1a;林锦弘&#xff0c;威斯康星麦迪逊大学&#xff0c;多赛事top10开源方案贡献者。 直播时间&#xff1a;2021年07月29日 20:00 直播内容&#xff1a; 计算机视觉比赛通用流程Top10方案讲解交流&答疑 直播网址&#xf…

UI培训教程分享:APP图标设计的6种风格都有哪些?

在从事UI设计师这个岗位的时候&#xff0c;相信大家会经常遇到关于产品设计的工作&#xff0c;尤其是APP图标这块&#xff0c;在日常工作中&#xff0c;常见的图标风格主要有渐变风格、剪影风格、长投影风格、卡通风格、轻质感风格和拟物风格6种。今天小编就为大家详细的介绍一…

图片基础知识梳理(3) BitmapBitmapFactory 解析

一、概述 今天这篇文章我们来了解一下两个类&#xff1a; BitmapBitmapFactory二、Bitmap 2.1 创建Bitmap 通过Bitmap的源码&#xff0c;我们可以看到它内部提供了很多.createBitmap(xxx)的静态方法&#xff0c;我们可以通过这些方法来获得一个Bitmap&#xff1a; 上述的方法最…

电路实验1-电容充放电

转载于:https://www.cnblogs.com/cutepig/archive/2013/01/17/2865289.html

【直播】陈信达:零基础计算机视觉之机器学习基础

零基础计算机视觉之机器学习基础 直播信息 分享嘉宾&#xff1a;陈信达&#xff0c;Datawhale成员&#xff0c;上海科技大学硕士。 直播时间&#xff1a;2021年07月30日 20:00 直播内容&#xff1a; 线性回归与指针读数识别逻辑回归原理与代码选讲人工神经网络与Fashion-MN…

UI培训分享:如何成为一名优秀的UI设计师

UI设计师在工作岗位中也是分等级的&#xff0c;如何成为一名优秀的UI设计师在如今的职业发展中是非常有必要的&#xff0c;各行各业都在内卷中&#xff0c;那么如何成为一名优秀的UI设计师呢?来看看下面的详细介绍。 UI培训分享&#xff1a;如何成为一名优秀的UI设计师? 好UI…

POJ 2418 Hardwood Species(trie 树)

题目链接 开始想用map的&#xff0c;字典序不会搞&#xff0c;还是老老实实的用trie树把。好久没写了&#xff0c;忘得差不多了。 1 #include <iostream>2 #include <cstdio>3 #include <cstdlib>4 #include <cstring>5 #include <map>6 #includ…

白盒测试实践-任务完成

这次的白盒测试实践已经圆满完成&#xff0c;每个人都分配到了相应的任务&#xff0c;并对各自的任务进行了具体的落实。 分配情况如下&#xff1a; 阶段任务名称任务负责人阶段一测试用例清单安秀芳阶段二静态评审罗阳刚、周成阶段三自动化静态检查滕怡天阶段四基于JUnit的单元…

【第23周复盘】懒癌犯了,拖到今天!

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…