标签:reload hot conf 跳转 _for ref com one 站点
一:Nginx防盗链在 nginx.conf中的server部分中添加如下代码
location ~ ^.+.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {
valid_referers none blocked server_names .taobao.com .baidu.com .google.com .google.cn .soso.com ; // 对这些域名的网站不进行盗链。
if ($invalid_referer) {
#return 403;
rewrite ^/ http://www.example.com/nophoto.gif;
}
}
说明:如果前面配置中已经加了 location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
那么会和这一部分重复,这时候上面的生效,所以,我们需要把两者合在一起。如下:
location ~ ^.+.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
expires 30d;
valid_referers none blocked server_names .taobao.com .baidu.com .google.com .google.cn *.soso.com ; // 对这些域名的网站不进行盗链。
if ($invalid_referer) {
#return 403;
rewrite ^/ http://www.example.com/nophoto.gif;
}
access_log off;
}
说明:盗用我们图片的人访问这些图片时会跳转到源路径,当然也可以直接显示403,即return 403,后者更节省资源。
限制只让某个ip访问,加如下配置:
allow 192.168.1.101;
deny all;
禁止某个IP或者IP段访问站点的设置方法,首先建立下面的配置文件放在nginx的conf
目录下面,命名为deny.ip
cat deny.ip
deny 192.168.1.11;
deny 192.168.1.123;
deny 10.0.1.0/24;
在对应的虚拟主机配置文件中加入:
include deny.ip;
重启一下nginx的服务:
#/usr/local/nginx/sbin/nginx reload
deny.ip 的格式中也可以用 deny all;
如果你想实现这样的应用,除了几个 IP 外,其他全部拒绝,
那需要你在deny.ip 中这样写
allow 1.1.1.1;
allow 1.1.1.2;
deny all;
有时候会根据目录来限制php解析:
location ~ .(diy|template|attachments|forumdata|attachment|image)/..php$
{
deny all;
}
配置nginx配置文件,使其能够支持 php。
#vim /usr/local/nginx/conf/nginx.conf
找到
location = /50x.html {
root html;
}
在其后面新增如下配置:
location ~ .php$ {
root html;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
重新加载 /usr/local/nginx/sbin/nginx -s reload
创建测试文件:
#vim /usr/local/nginx/html/2.php
内容如下:
<?php
echo "test php scripts.";
?>
测试:
#curl localhost/2.php
test php scripts. [root@localhost nginx]#
显示成这样,才说明PHP 解析正常。
#vim /usr/local/nginx/conf/vhosts/proxy.conf
加入如下内容:
server {
listen 80;
server_name aaa.com;
location / {
proxy_pass http://2.2.2.2/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# access_log /home/logs/aaa_access.log combined;
}
说明:proxy_pass 后面跟要代理机器的ip。如果后端的机器有多台,还可以用 upstream
来实现负载均衡,该部分知识点以后再详细介绍,配置如下:
upstream bbb
{
server 1.2.3.1:80;
server 1.2.3.4:80;
}
server {
listen 80;
server_name bbb.com;
location / {
proxy_pass http://bbb/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# access_log /home/logs/bb_access.log combined;
}
代理一个服务器上所有域名
首先在vhosts目录下需要建立两个文件,一个是servername 列表文件,一个是虚拟主机配置文件
两个文件内容分别为
(1) servername
server_name www.123.net.cn www.alsdjfl.com www.asdfa1.com; //就这么简单一行,当然这个server_name 还可以继续添加的
(2) 虚拟主机配置文件
server {
listen 80;
include vhosts/servername; // 这里的文件就是上边那个servername列表文件
location / {
proxy_pass http://1.2.1.2/; //这里就是需要做代理的服务器ip地址了
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /dev/null;
}
Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理
标签:reload hot conf 跳转 _for ref com one 站点
原文地址:http://blog.51cto.com/10941098/2160804