当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪配置nginx与wordpress时遇到的一个偱环重定向问题      之前搭建过一个nginx+wordpress的博客,于是就直接用了之前nginx的配置,其中用到了下面的配置:   代码如下: if ($host != 'www.abc.me') { rewrite ^/(.*)$ http://www.abc.me/$1 permanent; }   以上代码,是用.........
    ▪nginx设置目录保护、IP访问限制、防盗链、下载限速及设置多域名等的方法      在nginx中,我们可以通过设置实现许多功能,如目录保护、IP访问限制、防盗链、下载限速及设置多域名等,有需要的朋友不妨看看。 一、目录保护及访问限制 Nginx保护目录的配置如下,目录.........
    ▪Apache中虚拟主机设置泛域名解析一例      Apache中虚拟主机设置泛域名解析一例,供大家学习参考。 主要借助ServerAlias 的配置 1、支持多域名 例如,让mail.linuxfly.org、smtp.linuxfly.org、pop3.linuxfly.org 都指向同一个虚拟主机,可以写成: .........

[1]配置nginx与wordpress时遇到的一个偱环重定向问题
    来源: 互联网  发布时间: 2013-12-24

之前搭建过一个nginx+wordpress的博客,于是就直接用了之前nginx的配置,其中用到了下面的配置:
 

代码如下:
if ($host != 'www.abc.me') {
rewrite ^/(.*)$ http://www.abc.me/$1 permanent;
}
 

以上代码,是用来将abc.me 重定向到www.abc.me的。

在加上这段配置后,发现在浏览器端报告多重偱环,用chrome发一直在www.abc.me和abc.me之前重定向。

在发现这个问题后,首先觉得是我nginx配置的问题,检查后发现除了上面负责从abc.me重定向到www.abc.me之外没有发现其它的相关配置,而且之前在之前的另一个网站这个配置也没有出现过这个问题的。问题出现在哪呢?

折腾了半天实在没法子,又不能绕过去,只好先试着把上面所说的重定向先注释掉试试,竟然发现就好了,不会重定向了。

现象变成了这样:
打开abc.me后不会重定向www.abc.me了,能顺利打开网页。
但打开www.abc.me后,还是会转到abc.me,之后网页OK。
这样子说明,那个www.abc.me重定向到abc.me还是一起在起作用,虽然不知道在哪。

这个东西会不会和我在wordpress后台设置的站点地址有关系呢,一检查,果然那里就是设置的abc.me,这个设置会把www.abc.me转到abc.me吗?
试着将其改成www.abc.me后,发现这个设置还真的能将abc.me重定向www.abc.me.
这样子貌似和我自己写在nginx中的配置起到了相同的效果。


    
[2]nginx设置目录保护、IP访问限制、防盗链、下载限速及设置多域名等的方法
    来源: 互联网  发布时间: 2013-12-24

在nginx中,我们可以通过设置实现许多功能,如目录保护、IP访问限制、防盗链、下载限速及设置多域名等,有需要的朋友不妨看看。

一、目录保护及访问限制
Nginx保护目录的配置如下,目录密码保护文件是 /usr/local/nginx/htpasswd
 

代码如下:
location ~ /admin {
#admin为要保护的目录名称,location 的意思就是保护从网页根目录算起的admin 目录
   auth_basic          ”PLEASE LOGIN”;           #就是进入资料夹时会显示的信息
   auth_basic_user_file /usr/local/nginx/htpasswd;   
#验证用户及密码文件,我这边设定是放在 /usr/local/nginx/htpasswd
}
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/bbs$fastcgi_script_name;
    include       fastcgi_params;
}
 

注意,设置目录密码保护时,请注意配置区块的位置,如果放在location ~ \.php$ {}区块后面,如果打开的是静态页面或图片等非php文件,会提示要输入密码,但是,如果打开的是php文件,则设置无效,会直接执行php文件并显示。因此,一定要注意把要设置目录密码保护的区块放在location ~ \.php$ {}区块之前。
生成密码文件:
 

代码如下:
htpasswd -b -c  /usr/locla/nginx/htpasswd username password;

二、防盗链
另外 NGiNX 防盗链,防止别人偷图(视频、flash、软件…)当然也是 OK 滴!  一样也是在 server 的区段加上
 

代码如下:
location ~* \.(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ {
valid_referers none blocked www. ;
if ($invalid_referer) {
rewrite ^/ http://www./notlink.html;
}
}

这时候 location 的意思就是保护从网页根目录算起,所有的指定类型的文件都依照此规则
valid_referers none blocked 的意思就是不阻挡从哪些地方来的囉~ 这边以空格来分隔允许的域名或 ip 位置
$invalid_referer 的意思就是不允许连结
rewrite ^/ http://www./notlink.html; 的意思就是指定不允许的连结自动转向到一个页面,或是已经有设定 404 转址的也可以先注解掉这行再把 #return 404 的注解拿掉,就会自动跑到你设定的 404 页面了。

三、下载限速
NGiNX 还能限速再限制下载线程!  先在 http 区段找到 limit_zone,再把注释拿掉~
 

代码如下:
# 设定一个叫做 crawler 的区域,大小为 20MB
limit_zone crawler $binary_remote_addr 20m;

然后在 server 的区段加上
 

代码如下:

# 限制档案类型只能单线下载
location ~ .*\.(zip|rar|gz|tar|exe|mp3|flv|swf|jpg|jpeg)$
{
limit_conn crawler 1;
limit_rate 500k; # 再加上限速
}

# 限制特定资料夹底下只能单线下载
# location /download/ {
# limit_conn crawler 1;
# limit_rate 500k; # 再加上限速
# }

四、多域名处理
在Nginx虚拟主机上绑定了泛域名,在程序中需要用二级域名指向不同的内容,但无论如何访问都只跳转到主域名上!
为了找到问题,一个一个试验,得出如下结论:不管绑定多少域名,用 $_SERVER["SERVER_NAME"] 只会返回虚拟主机中绑定的第一个域名!
比如绑定域名如下:
server_name     www. *.
现在我不管用什么域名访问, $_SERVER["SERVER_NAME"] 都只会返回 www. !!这是个很严重的问题,对泛域名造成了致命的影响!
既然有问题,就肯定有解决方案。。在wiki主翻了N久,终于找到了需要的资料!
原来:$_SERVER["SERVER_NAME"] 返回的值是由 Nginx 的 fastcgi_param 中 SERVER_NAME 提供的,而默认的配置为:
fastcgi_param  SERVER_NAME    $server_name;
Nginx中 $server_name 变量就是上面设置的域名,只会返回第一个!
这下好办了,把上面的配置改成:
fastcgi_param  SERVER_NAME    $host;
就可以了。

另外还需要在server_name配置后面加一行:
server_name_in_redirect off;
意思是让 nginx 在处理自己内部重定向时不默认使用  server_name 设置中的第一个域名。


    
[3]Apache中虚拟主机设置泛域名解析一例
    来源: 互联网  发布时间: 2013-12-24

Apache中虚拟主机设置泛域名解析一例,供大家学习参考。

主要借助ServerAlias 的配置

1、支持多域名
例如,让mail.linuxfly.org、smtp.linuxfly.org、pop3.linuxfly.org 都指向同一个虚拟主机,可以写成:
 

代码如下:
ServerName mail.linuxfly.org
ServerAlias smtp.linuxfly.org pop3.linuxfly.org

ServerName 用于指定首选域名,其他的域名用ServerAlias指定,并用空格区分即可。

2、支持泛域名解析
ServerAlias 可支持扩展符,例如,希望 xx.a.com 下的所有二级子域名都能用同一个虚拟主机解析,可以设成:
 

代码如下:
<VirtualHost *:80>
   ServerName      xx.a.com
   ServerAlias     *.xx.a.com
   DocumentRoot /var/www/htdocs/
</VirtualHost>

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3