1. 首页 > 数码 >

nginx if判断 nginxif判断无效

Apache和Nginx防盗链的几种配置方法

console.log(e);

Nginx防盗链的配置

nginx if判断 nginxif判断无效nginx if判断 nginxif判断无效


nginx if判断 nginxif判断无效


1、nginx针对文件类型的防盗链配置方法:

location ~ \.(gif|jpg|png|swf|flv|bmp)$ {

valid_referers none blocked .xxxxx xxxxx;

if ($invalid_referer) {

return 403;

}}

这种方法是在server或者location段中加入:valid_referers none blocked,其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个文件,blocked表示被防火墙标记过的来路,.xxxxx表示所有子域名。

2、nginx针对文件目录的防盗链配置方法:

location /img/ {

valid_referers none blocked .xxxxx xxxxx;

if ($invalid_referer) {

rewrite ^/ 抄底 chaodiquan /error.gif;

#return 403;

}}

Apache防盗链的配置

Apache 防盗链的种实现方法,可以用 Rewrite 实现。首先要确认 Apache 的 rewrite module 可用:能够控制 Apache d.conf 文件的,打开 d.conf,确保有这么一行配置:

LoadModule rewrite_module modules/mod_rewrite.so

然后在相应虚拟主机配置的地方,加入下列代码:

Name xxxxx

# 防盗链配置 参数

RewriteEngine On

xxxxx 表示自己的信任站点。gif|jpg|swf 表示要保护文件的扩展名(以|分开)。nolink.gif 盗链后的重定向页面/。用以输出警示信息,这张应该尽可能的小。

有些用户使用的是虚拟主机,没有的控制权,无法修改 d.conf 文件和重启。那么请确认你的虚拟主机支持 .htaccess,将上面的配置写入 .htaccess 文件,放入根目录或所在的目录即可:server {

# 防盗链配置

RewriteEngine On

通过判断referer变量的值,判断或资源的引用是否合法,只有在设定范围内的 referer,才能访问指定的资源,从而实现了防盗链(Anti-Leech)的目的。需要指出的是:不是所有的用户(浏览器)都会设置 referer 变量,而且有的还可以手工修改 referer,也就是说,referer 是可以被伪造的。本文所讲的,只是一种简单的防护手段。当然,应付一般的盗链也足够了。

Apache和Nginx防盗链的几种配置方法

Nginx防盗链的配置

1、nginx针对文件类型的防盗链配置方法:

location ~ \.(gif|jpg|png|swf|flv|bmp)$ {

valid_referers none blocked .xxxxx xxxxx;

if ($invalid_referer) {

return 403;

Charset用于 设置网页的默认编码格式。access_log用来指定此虚拟主机的访问日志存放路径,的main用于指定访问日志的输出格式。}}

这种方法是在server或者location段中加入:valid_referers none blocked,其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个文件,blocked表示被防火墙标记过的来路,.xxxxx表示所有子域名。

2、nginx针对文件目录的防盗链配置方法:

location /img/ {

valid_referers none blocked .xxxxx xxxxx;

if ($invalid_referer) {

rewrite ^/ 抄底 chaodiquan /error.gif;

#return 403;

}}

Apache防盗链的配置

Apache 防盗链的种实现方法,可以用 Rewrite 实现。首先要确认 Apache 的 rewrite module 可用:能够控制 Apache d.conf 文件的,打开 d.conf,确保有这么一行配置:

LoadModule rewrite_module modules/mod_rewrite.so

然后在相应虚拟主机配置的地方,加入下列代码:

Name xxxxx

# 防盗链配置 参数

RewriteEngine On

xxxxx 表示自己的信任站点。gif|jpg|swf 表示要保护文件的扩展名(以|分开)。nolink.gif 盗链后的重定向页面/。用以输出警示信息,这张应该尽可能的小。

有些用户使用的是虚拟主机,没有的控制权,无法修改 d.conf 文件和重启。那么请确认你的虚拟主机支持 .htaccess,将上面的配置写入 .htaccess 文件,放入根目录或所在的目录即可:

# 防盗链配置

RewriteEngine On

通过判断referer变量的值,判断或资源的引用是否合法,只有在设定范围内的 referer,才能访问指定的资源,从而实现了防盗链(Anti-Leech)的目的。需要指出的是:不是所有的用户(浏览器)都会设置 referer 变量,而且有的还可以手工修改 referer,也就是说,referer 是可以被伪造的。本文所讲的,只是一种简单的防护手段。当然,应付一般的盗链也足够了。

nginx基本配置(参考)

要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。

Nginx是一款自由的、开源的、高性能的HTTP和反向;同时也是一个IMAP、POP3、SMTP;Nginx可以作为一个HTTP进行网站的发布处理,另外Nginx可以作为反向进行负载均衡的实现。

Nginx是一个高性能的反向,现在一般作为我们网站或其他Web服务的层,用户在浏览器请求首先经过的就是Nginx服务。

怎么设置nginx不区分大小写

1. 采用nginx提供的Perl Moudle,注意这个模块并没有自动加载,需要运行配置文件时增加--with-perlmodule。首先,location要匹配到ooo目录,然后要匹配剩余uri,如果有大写,则调用perl将全部转成小写,然后rewrproxy_redirect off;ite,参考配置代码:

#测试permy $l = lc($r->uri);l的统一转小写功能

perl_set $ '

sub {

return $l;

}';

location ~ ^/ooo/ {

if ($uri ~ [A-Z]) {

rewrite ^(.)$ $ premanent;

}root ooo所在的根目录;

nginx配置中 root能指定非本地的文件路径吗

本篇博文是《nginx实现动态/静态文件缓存-技术流ken》的二部曲。将详细介绍nginx如何实现反向以及负载均衡技术,并辅以实战案例。反向--“反向方式是指以来接受internet上的连接请求,然后将请求转发给内部网络上的,并将从上得到的结果返回给internet上请求连接的客户端,此时对外就表现为一个反向。”负载均衡--“网络专用术语,负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。”2.nginx实现反向

从理论上将nginx的root只能制定本地的文件路径。nginx对与网络路径的指定一般都通过fast_cgi指令和proxy_pass来完成,这两个指令可以把请求转发给下游机器来实现网络通信。但是对于普通的root指令,理论上只能是制定本地文件路径。并且查看了下nginx的模块源码,发现在autoindex模块中文件定位的代码中存在如下代码:

1if (ngx_open_dir(&path, &dir) == NGX_ERROR) {

而ngx_open七、location URL匹配配置_dir实际上是opendir()函数的封装。而在linux C中,opendir函数的参数中指定的路径只能是本地路径,因此,从源码的角度上分析,root指令也只能制定本地的文件路径。

如何查看nginx的运行状态

查看nginx的运行状态步骤如下:

1、我们在浏览器中输入:127.0.0.1 回车后,应该能看到一个欢迎页面(没有改默认网页的情况)。如果能够看到, 说明nginx启动正常。

3、在打开的nginx.conf文件中,找到:

listen ;

的行,可以知道当前nginx用的端口是8080。

4、这时要访问网页的话,就得在浏览器的地址栏中输入:127.0.0.1:8080 ,回车后如果能看到网页则说明服务正常,否则服务未正常启动。

如果Nginx服务没有启动或异常结束,将会影响Web服务的正常使用。

通过进程判断

1、查看进程列表并过滤

用ps -ef列出进程列表,然后通过grep过滤。

如: ps -ef | grep nginx 就可以看到Nginx进程是否存在了。

2、直接查看进程id

ps -C ng#rewrite ^/ xxxx/403.html;inx -o pid

这种直接返回pid的方式比较适合跟其他程序结合使用,比如在shell/python脚本中执行这个命令拿到pid,让后根据pid来判断Nginx是否启动。

使用这种方式。

通过端口判断

1、使用netstat命令

如果我们的Nginx运行在80端口,那么就可以通过netstat -anp | grep :80命令来判断Nginx是否启动。

2、使用lsof命令

lsof -i:80 也可以查到80端口进程是否有进程在运行

nginx 日志怎么开启

}});

nginx访问日志默认为开启状态,日志位于nginx安装目录下的logs/access.log

日志配置指令如下:

access_log path [format [buffer=size] [gzip[=ll]] [flush=time] [if=my $r = shift;condition]];

access_log off;

行是启用日志

第二行是关闭日志

启用日志的必选参数为path表示日志路径

如何设置301/302重定向

RewriteCond %{HTTP_REFERER} !^ [NC]

首先看一个完整代码示例,关于nginx 301 302跳转的。 301跳转设置: server { listen 80; server_name downcc; rewrite ^/(; rewrite ^/(.) /$1 permanent; } last – 基本上都用这个Flag。 break – 中止Rewirte,不在继续匹配 redirect – 返回临时重定向的HTTP状态302 permanent – 返回重定向的HTTP状态301 Nginx的重定向用到了Nginx的HttpRewriteModule,下面简单解释以下如何使用的方法: rewrite命令 nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令格式如下: rewrite 正则表达式 替换目标 flag标记 flag标记可以用以下几种格式: last – 基本上都用这个Flag。 break – 中止Rewirte,不在继续匹配 redirect – 返回临时重定向的HTTP状态302 permanent – 返回重定向的HTTP状态301 特别注意: last和break用来实现URL重写,浏览器地址栏的URL地址不变,但是在端访问的路径发生了变化; redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址; 例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对Active connections表示当前活跃的连接数,第三行的三个数字表示 Nginx当前总共处理了34561个连接, 成功创建次握手, 总共处理了354399个请求。应第二个括号(.)中对应的字符串: location /download/ { rewrite ^(/download/.)/m/(.)..$ $1/nginx-rewrite/$2.gz break; } nginx重定向的IF条件判断 在server和location两种情况下可以使用nginx的IF条件判断,条件可以为以下几种: 正则表达式 如: 匹配判断 ~ 为区分大小写匹配; !~为区分大小写不匹配 ~ 为不区分大小写匹配;!~为不区分大小写不匹配 例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下: if ($_user_agent ~ MSIE) { rewrite ^(.)$ /nginx-ie/$1 break; } 文件和目录判断 -f和!-f判断是否存在文件 -d和!-d判断是否存在目录 -e和!-e判断是否存在文件或目录 -x和!-x判断文件是否可执行 例如下面设定nginx在文件和目录不存在的时候重定向: if (!-e $request_filename) { proxy_pass 127.0.0.1; } return 返回代码,例如设置nginx防盗链: location ~ .(gifjpgpngswfflv)$ { valid_referers none blocked ; if ($invalid_referer) { return 404; } }

nginx配置文件详解

URL地址匹配是进行Nginx配置中最灵活的部分。 location支持正则表达式匹配,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。使用location URL匹配配置还可以实现反向,用于实现PHP动态解析或者负载负载均衡。

一、安装Nginx

其中, _with-_stub_status_module 可以用来启用 Nginx 的 NginxStatus 功能,以 Nginx 的运行状态。

二、NginxRewriteRule .\.(gif|jpg|swf)$ [R,NC]的配置文件结构

nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个,又包含多个location。

main(全局设置)、server(主机设置)、upstream(负载均衡设置)和 location(URL匹配特定位置的设置)。

1、main块设置的指令将影响其他所有设置。

2、server块的指令主要用于指定主机和端口。

3、upstream指令主要用于负载均衡,设置一系列的后端。

4、location块用于匹配网页位置。

这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。

在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。

三、Nginx的全局配置

nts指令是设定Nginx的工作模式及连接数上限:

use是个模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。

其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是worker_connections也是个模块指令,用于定义Nginx每个进程的连接数,默认是1024。

客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processesworker_connections。

在作为反向时,max_clients变为:max_clients = worker_processes worker_connections/4。

进程的连接数受Linux系统进程的打开文件数限制,在执行作系统命令“ulimit -n 65536”后worker_connections的设置才能生效。

四、下面配置Nginx的HttpGzip模块。这个模块支持在线实时压缩输出数据流。

通过/opt/nginx/in/nginx -V命令可以查看安装Nginx时的编译选项,由输出可知,已经安装了HttpGzip模块。

五、负载均衡配置

下面设定负载均衡的列表:

upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端的负载均衡。

在上面的设定中,通过upstream指令指定了一个负载均衡器的名称cszhi。这个名称可以任意指定,在后面需要的地方直接调用即可,Nginx的负载均衡模块目前支持4种调度算法。

六、server虚拟主机配置

下面介绍对虚拟主机的配置。

建议将对虚拟主机进行配置的内容写进另外一个文件,然后通过include指令包含进来,这样更便于维护和管理。

server标志定义虚拟主机开始,listen用于指定虚拟主机的服务端口,server_name用来指定IP地址或者域名,多个域名之间用空格分 开。index用于设定访问的默认首页地址,root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是路径。

以下这段设置是通过location指令来对网页URL进行分析处理,所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里是30天。

八、StubStatus模块配置

StubStatus模块能够获取Nginx自上次启动以来的工作状态,此模块非核心模块,需要在Nginx编译安装时手工指定才能使用此功能。

stub_status设置为“on”表示启用StubStatus的工作状态统计功能。access_log 用来指定StubStatus模块的访问日志文件。auth_basic是Nginx的一种认证机制。

auth_basic_user_file用来指定认证的密码文件,由于Nginx的auth_basic认证采用的是与Apache兼容的密码文件,因此需要用Apache的htpasswd命令来生成密码文件。

然后输入两次密码后确认之后添加用户成功。

要查看Nginx的运行状态,可以输入://ip/NginxStatus,输入创建的用户名和密码就可以看到Nginx的运行状态。

一行的Reading表示Nginx读取到客户端Header信息数, Writing表示Nginx返回给客户端的Header信息数,“Waiting”表示Nginx已经处理完,正在等候下一次请求指令时的驻留连接数。

在这段设置中,设置了虚拟主机的错误信息返回页面,通过error_page指令可以定制各种错误信息的返回页面。在默认情况下,Nginx会在主目录的html目录中查找指定的返回页面。

特别需要注意的是,这些错误信息的返回页面大小一定要超过512K,否者会被ie浏览器替换为ie默认的错误页面。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息