菜单

Nginx

2018年12月16日 - 注册免费送38元体验金

      Nginx(发音engine
x)专为性优化而开,其最为出名的优点是她的保山久安以及低系统资源消耗,以及针对HTTP并发连接的过人处理能力(单台物理服务器可补助30000~50000个冒出请求)。正因这样,大量供社交网站、音讯资讯、电子商务以及虚拟主机等劳动的柜纷纷采用Ngnix来提供WEB服务。如初浪,金山,知乎,腾讯,百度文库,51cto,人人网等。

网站 apache IIS lighttpd html
负载均衡 lvs haproxy
反向代理 squid varnish

 

apache select
nginx epoll

 

网站使用统计站点:http://news.netcraft.com/

Nginx官方站点:http://nginx.org
淘宝Tengine:http://tengine.taobao.org/

http://toolbar.netcraft.com/site\_report?url=undefined\#last\_reboot

摩登的安静版:1.6.2
流行的开发板:1.7.9

wget http://nginx.org/download/nginx-1.6.2.tar.gz

 

1)设置襄助软件:
Nginx的部署以及运行需要pcre、zlib等软件包的帮助,因而应事先安装这多少个软件之开发包(devel),以便提供相应的库和头文件,确保Nginx的装顺利完成。

 

[root@nginx ~]# service iptables stop
[root@nginx ~]# setenforce 0
[root@nginx ~]# service httpd stop
[root@nginx ~]# yum -y install pcre-devel zlib-devel

 

2)创制运行用户、组:
Nginx服务程序默认为nobody身份运行,提议吧其创立专门的用户账号,以便更精确地控制其访问权限,扩张灵活性、降低安全风险。如:创制一个誉为吧nginx的用户,不树立宿主目录,也不准登录到shell环境。

[root@nginx ~]# useradd -M -s /sbin/nologin nginx

 

3)编译安装nginx:
释放nginx源码包

注册免费送38元体验金 1注册免费送38元体验金 2

[root@nginx ~]# tar xf nginx-1.6.2.tar.gz -C /usr/src/

翻开命令

 

 

编译前安排:

[root@nginx ~]# cd /usr/src/nginx-1.6.2/
[root@nginx nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module

横流:配置前可参照:./configure –help给有评释
–prefix 设定Nginx的装目录
–user和—group 指定Nginx运行用户以及组
注册免费送38元体验金,–with-http_stub_status_module
启用http_stub_status_module模块以襄助状态总括
–with-http_ssl_module 启用SSL模块
–with-http_flv_module
启用FLV模块,提供寻求内存以基于时间之偏移量文件

 

编译 安装:

[root@nginx nginx-1.6.2]# make && make install

  

 为了使Nginx服务器的运作更加有利于,可以为主程序nginx创制链接文件,以便管理员直接实施nginx命令就可以调用Nginx的主程序。

 

[root@nginx nginx-1.6.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[root@nginx nginx-1.6.2]# ll /usr/local/bin/nginx 
lrwxrwxrwx 1 root root 27 12-29 07:24 /usr/local/bin/nginx -> /usr/local/nginx/sbin/nginx

Nginx的运作控制:
和Apache的主程序httpd类似,Nginx的主程序也供了”-t”选项用来针对部署文件举行检讨,以便查找来非当或不当的配备。配置文件nginx.conf默认位于安目录/usr/local/nginx/conf/目录中。若使反省在其他职务的布文件,可运”-c”选项来指定路线。

[root@nginx conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动、停止Nginx:
一直运行nginx即可启动Nginx服务器,这种艺术将使默认的安排文件,若要改用其他安排文件,需加上”-c
配置文件路径”选项来指定路线。需要留意的凡,若服务器被早就安装有httpd等此外WEB服务软件,应接纳措施(修改端口,停用或卸载)避免部突。

[root@nginx conf]# service httpd stop
[root@nginx conf]# netstat -anpt |grep :80
[root@nginx conf]# nginx
[root@nginx conf]# netstat -anpt |grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      6810/nginx: master 

经检查
Nginx程序的监听状态,或者在浏览器被访问那WEB服务(默认页面将显得”Welcome
to nginx!”),可以肯定Nginx服务是否健康运行。

[root@nginx ~]# elinks --dump http://localhost
                               Welcome to nginx!

主程序Nginx匡助标准的长河信号,通过kill或者killall命令传送  

HUP 重载配置 等同于-1
QUIT 退出过程 等同于-3
KILL 杀死进程
USR1 重新写入日志
USR2 平滑重开

[root@nginx ~]# killall -s HUP nginx
[root@nginx ~]# killall -s QUIT nginx
[root@nginx ~]# netstat -anpt |grep :80

   

http://urchin.blog.51cto.com/4356076/988860/  

 

当Nginx进程运行时,PID号默认存放于logs/目录下的nginx.pid文件被,由此只要改用kill命令,也可因nginx.pid文件被的PID号来进展支配。

以使Nginx服务的启动、截至、重载等操作更有益,可以编制Nginx服务脚本,并动用chkconfig和service工具来展开管理,也愈来愈切合RHEL系统的军事管制习惯。

[root@nginx ~]# vim /etc/init.d/nginx

脚本一:

#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0

 脚本二:
#!/bin/sh
#
# nginx Startup script for nginx
#
# chkconfig: - 85 15
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# description: nginx is a HTTP and reverse proxy server
#
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop nginx
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

CONFFILE="/etc/nginx/nginx.conf"

if [ -f /etc/sysconfig/nginx ]; then
. /etc/sysconfig/nginx
fi

prog=nginx
nginx=${NGINX-/usr/sbin/nginx}
conffile=${CONFFILE-/etc/nginx/nginx.conf}
lockfile=${LOCKFILE-/var/lock/nginx.lock}
pidfile=${PIDFILE-/var/run/nginx/nginx.pid}
RETVAL=0

start() {
echo -n $"Starting $prog: "

daemon --pidfile=${pidfile} ${nginx} -c ${conffile}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}

stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} ${prog}
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

reload() {
echo -n $"Reloading $prog: "
killproc -p ${pidfile} ${prog} -HUP
RETVAL=$?
echo
}

upgrade() {
oldbinpidfile=${pidfile}.oldbin

configtest || return 6
echo -n $"Staring new master $prog: "
killproc -p ${pidfile} ${prog} -USR2
RETVAL=$?
echo
sleep 1
if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then
echo -n $"Graceful shutdown of old $prog: "
killproc -p ${oldbinpidfile} ${prog} -QUIT
RETVAL=$?
echo 
else
echo $"Upgrade failed!"
return 1
fi
}

configtest() {
${nginx} -t -c ${conffile}
RETVAL=$?
return $RETVAL
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} ${nginx}
RETVAL=$?
;;
restart)
stop
start
;;
upgrade)
upgrade
;;
condrestart|try-restart)
if status -p ${pidfile} ${nginx} >&/dev/null; then
stop
start
fi
;;
force-reload|reload)
reload
;;
configtest)
configtest
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}"
RETVAL=2
esac

exit $RETVAL

  

[root@nginx ~]# chmod +x /etc/init.d/nginx
[root@nginx ~]# chkconfig --add nginx
[root@nginx ~]# chkconfig nginx on
[root@nginx ~]# chkconfig --list nginx 
nginx           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

这么虽然足以经过nginx脚本来启动、截止、重开、重载Nginx服务器了。

 

3、配置文件nginx.conf:
当Nginx服务器的主配置文件nginx.conf中,包括全局配置、I/O事件配置、HTTP配置这三很块内容,配置语句的格式为”关键字
值;”(末尾以分行表示了),以”#”初叶的部分代表注释。

1)全局配置
由各个配置语句组成,不采取一定的限标记。全局配置部分包括运转用户、工作经过数、错误日志、PID存放地点等中央设置。
常用配置起:

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;      //访问日志位置

    sendfile        on;                     //支持文件发送(下载)
    keepalive_timeout  65;                  //连接保持超时

    server {                                //web服务的监听配置
        listen       80;                    //监听地址及端口
        server_name  nginx.benet.com;       //网站名称(FQDN)
        charset utf-8;                      //网页的默认字符集

        location / {                        //跟目录配置
            root   html;                    //网站根目录的位置安装位置的html中
            index  index.html index.htm;    //默认首页(索引页)
        }

        error_page   500 502 503 504  /50x.html;    //内部错误的反馈页面
        location = /50x.html {                      //错误页面配置
            root   html;
        }
    }
}



http://shehui.rmzxb.com.cn/c/2016-06-03/851312312021.shtml
https://err.taobao.com/error1.html?c=404&u=https://www.taobao.com/c/2016-06-03/851312312021.shtml&r=

listen 支持采用 IP地址:端口 形式

4、状态总结和虚拟主机应用:
Nginx内置了HTTP_STUB_STATUS状态总括模块,用来申报时底WEB访问意况。配置
编译参数时不过补充加–with-http_stub_stastus_module来启用这一个模块。要下Nginx的状态总计成效,除了启用内建模块以外,还需要修改nginx.conf文件,指定访问地点并打开stub_status配置。在http{}配置的server{}子配置外增补加如下配置起

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf

        location ~ /status {
            stub_status on;     //打开状态统计功能
            access_log off;     //关闭此位置的日志记录
        }

[root@nginx conf]# service nginx restart

浏览器访问 http://192.168.200.128/status

Active connections: 1
server accepts handled requests
1 1 3
Reading: 0 Writing: 1 Waiting: 0

  

Active connections 代表即活蹦乱跳的总是数,
亚执的老三独数字代表Nginx当前累计
处理了1个连,成功开创1不佳握手,总共处理了3只请求。
说到底一行的Reading表示Nginx读博到客户端Header新闻数,
Writing代表Nginx再次回到给客户端的Header信息数
“Waiting”表示Nginx已经处理完毕,正在等候下同样软呼吁指令时之驻扎留连接数。

 

虚拟主机:
以Nginx搭建虚拟主机服务器时,每个虚拟WEB站点拥有独立的”server
{}”配置段,各自监听的IP地址、端口号可以独自指定,当然网站称为是殊之。
比如说:要创多少个站点nginx.benet.com和nginx.accp.com
啊片只虚拟WEB主机分别成立根目录,并准备测试首页

[root@nginx ~]# mkdir /usr/local/nginx/html/benet
[root@nginx ~]# mkdir /usr/local/nginx/html/accp
[root@nginx ~]# echo "<h1>nginx.benet.com</h1>" > /usr/local/nginx/html/benet/index.html
[root@nginx ~]# echo "<h1>nginx.accp.com</h1>" > /usr/local/nginx/html/accp/index.html
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  www.benet.com;
        charset utf-8;
        access_log  logs/benet.access.log  main;

        location / {
            root   html/benet;
            index  index.html index.htm;
        }
    }

    server {
        listen       80;
        server_name  www.accp.com;
        charset utf-8;
        access_log  logs/accp.access.log  main;

        location / {
            root   html/accp;
            index  index.html index.htm;
        }
    }
}

[root@nginx ~]# service nginx reload
[root@nginx ~]# vim /etc/hosts
192.168.200.128 nginx.benet.com
192.168.200.128 nginx.accp.com

[root@nginx ~]# elinks --dump http://nginx.benet.com
                                 nginx.benet.com
[root@nginx ~]# elinks --dump http://nginx.accp.com
                                  nginx.accp.com

  Nginx配置文件结构

配置项 值;
配置项 值;

events {

}

http {

    server {

        location {



        }


    }


} 

 拉开压缩 

gzip on;
gzip_min_length 1k;
gzip_buffer 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_type text/plain application/x-javascript text/css application/xml;
gzip_cary on;

  机动索引

 

location /download {
        autoindex on;
        }

[root@nginx ~]# cd /usr/local/nginx/html/
[root@nginx html]# mkdir download/dir{1,2} -p
[root@nginx html]# touch download/1.txt
[root@nginx html]# touch download/2.txt
[root@nginx html]# service nginx reload
浏览器访问 http://192.168.200.213/download

从定义错误页面  

        error_page 403 404              /404.html;
        location = /404.html {
            root html;
        }
[root@nginx html]# echo "Sorry,Page Not Found" >  /usr/local/nginx/html/404.html
[root@nginx html]# service nginx reload
浏览器访问 http://192.168.200.213/abc
返回结果: Sorry,Page Not Found 

 Nginx
协理为目录添加密码验证 

用户访问控制:使用apache 的 htpasswd 来创建密码文件
[root@nginx ~]# yum -y install httpd
[root@nginx ~]# htpasswd -c /usr/local/nginx/.htpasswd crushlinux
New password: 
Re-type new password: 
Adding password for user crushlinux

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        location ~ /status {
            stub_status on;
            access_log off;
            auth_basic "Nginx Status";
            auth_basic_user_file /usr/local/nginx/.htpasswd;
        }

客户端访问控制:
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        location ~ /status {
            stub_status on;
            access_log off;
            auth_basic "Nginx Status";
            auth_basic_user_file /usr/local/nginx/.htpasswd;
            allow 192.168.200.1;
            deny 192.168.200.0/24;
        }

注:allow 允许规则,deny拒绝规则;规则的执行是按从上向下执行,匹配某条规则后将不再检查其他规则。

 编天天必时切割Nginx日志的本子 

1、创建脚本
[root@nginx ~]# vi /usr/local/nginx/sbin/cut_nginx_log.sh
#!/bin/bash
# This script run at 00:00

# The Nginx logs path
logs_path="/usr/local/nginx/logs/"

mkdir -p ${logs_path}$(date +"%Y")/$(date +"%m")/
mv ${logs_path}access.log ${logs_path}$(date +"%Y")/$(date +"%m")/access_$(date +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

2、设置crontab,每天凌晨00:00切割nginx访问日志
[root@nginx ~]# chmod +x /usr/local/nginx/sbin/cut_nginx_log.sh
[root@nginx ~]# crontab -e
00 00 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh
[root@nginx ~]# service crond restart

 转叫效率 

 

[root@nginx html]# mkdir Centos RedHat
[root@nginx ~]# echo "hello,students" > /usr/local/nginx/html/RedHat/index.html
[root@nginx ~]# vi /usr/local/nginx/conf/nginx.conf
    location ~ /Centos {
        alias /usr/local/nginx/html/RedHat;
    }
[root@nginx ~]# service nginx restart
停止 nginx:[确定]
启动 nginx:[确定]
在浏览器中http://192.168.200.213/Centos 进行测试

Nginx的浏览器本地缓存设置  

location ~.*\.(gif|jpg|jpge|png|bmp|swf)$
{
    expires 30d;
}

location ~.*\.(js|css)$
{
    expires 1h;
}

  设定限速

location /download
{
limit_rate 256k;
proxy_pass http://1.2.3.4;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /movie
{
    limit_rate_after 10m;
    limit_rate 100k;
}
if ($http_user_agent~Google|Yahoo|baidu){
    limit_rate 20k; 
}

 实现域名跳转 

 

server {
        listen 80 default_server;
        server_name www.jd.com;
        root /usr/local/nginx/html;
        index index.html;
        rewrite ^(.*)$ http://www.360buy.com$1 permanent;
        access_log /usr/local/nginx/logs/www.jd.com-access.log main;
        error_log /usr/local/nginx/logs/www.jd.com-error.log warn;
        }

在浏览器中http://www.360buy.com进行测试

  不等浏览器访问到不同之页面

[root@nginx html]# mkdir firefox msie
[root@nginx html]# echo "hello,firefox" > firefox/index.html
[root@nginx html]# echo "hello,msie" > msie/index.html
        location / {
        if ($http_user_agent ~ Firefox) {
        root /usr/local/nginx/html/firefox;
        }
        if ($http_user_agent ~ MSIE) {
        root /usr/local/nginx/html/msie;
        }
            index  index.html index.htm;
        }

  模拟手机端和电脑端

 

location / {
    #默认PC端访问内容
    root /usr/local/nginx/html/web;

    #如果是手机移动端访问内容
    if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )
    {
        root /usr/local/nginx/html/mobile;
    }

    index index.html index.htm;
}

  Nginx 匹配规则

 

location [=|~|~*|^~] /uri/{...}
默认值:no
使用字段:server
这个参数根据URI的不同需求来进行配置,可以使用字符串与正则表达式匹配,
如果要使用正则表达式,你必须指定下列前缀
~:区分大小写
~*:不区分大小写
^~:禁止表达式匹配
=:精确匹配

nginx匹配规则
location = / {
#只匹配 / 的查询.
[configuration A ]
}
location / {
#匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
[configuration B ]
}
location ^~  {
#匹配任何以  开始的查询并且停止搜索,不检查正则表达式。
[configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
#匹配任何以gif,jpg,or,jpeg结尾的文件,但是所有  目录的请求将在Configuration C中处理。
[configuration D ]
}

  

各要的处理要下例:

./ ->configuration A
./documents/document.html -> configuration B
..gif -> configuration C
./document/1.jpg -> configuration D

  

 

Nginx rewrite
Rewrite 重要的功能就是落实URL的重写,Nginx的Rewrite规则接纳PCRE(Perl
Compatible Regular Expressions)
perl兼容正则表明式的语法举行平整之效能,在编译Nginx此前,需要编译安装PCRE库

URL是Uniform Resource
Location的缩写,译为“统一资源一定相符”。如:http://www.linkwan.com/111/welcome.htm

URI由一个透过通用资源标志符(Universal Resource
identifier,简称“URI”)举行固定。

if指令
平整语法

if($http_user_agent ~MSIE){
rewrite ^(.*)$ /msie/$1 break;
}
if(!-f $request_filename){
rewrite ^/img/(.*)$/site/$host$1 last;
}

  

rewrite语法规则
变量名
变量曰好使”=”或”!=”运算符
“~” 符号表示区分好小写字母的非凡
“~*” 符号表示不分好小写字母的配合
“!~” 和”!~*”与”~” “!~”相反
“-f”和”!-f” 用来判定文件是否是
“-d”和”!-d” 用来判断目录是否存在
“-e”和”!-e” 用来判断文件或者目录是否有
“-x”和”!-x” 用来判断文件是否足以实施
也支持$!到$9地方化参数

return指令
演示,即使看的URL以”*.sh” “*.bash”结尾,则回状态码403

location ~ .*\.(sh|bash)?$
{
return 403;
}

set、rewrite指令
if ($host ~* ^(.*?)\.aaa\.com$)
{
set $var_tz '1';
if ($host ~* ^192\.168\.1\.(.*?)$)
{
set $var_tz '1';
}
if ($host ~*^localhost)
{
set $var_tz '1'
}
if ($var_tz !~'1')
{
rewrite ^/(.*)$ http://www.aaa.com/ redlirect;

  

rewrite指令
rewrite指令的末段一宗参数为flag标记,帮忙的flag标记紧要出以下几栽
last:相当于apache里的[L]记,表示完成rewrite;
break:本条规则匹配成功后,终止匹配,不再匹配前面的平整
redirect:重临302即又定向,浏览器地址栏会呈现跳转后的URL地址
permanent:重回301永恒重定向,浏览器地址栏会呈现跳转后底URL地址

last和break用来促成URI重写,浏览器地址栏URL地址不更换
redirect与permanent用来贯彻URL跳转,浏览器地址栏会呈现跳转后底URL地址

rewrite fiag案例
lacation /cms/ {
proxy_pass http://test.yourdomain.com;
rewrite “^/cms/(.*)\.html$” /cms/index.html break;
}
诚如以跟location中(即location
/{……})或直接在Server标签中修rewrite规则,
推荐下last标记,在非跟location中(location /cms/{……}),则使用break标记

rewrite规则编写实例
1.拿本来要看/data目录重写为/bbs
rewrite ^/data/?$ /bbs/ permanent;
2.基于不同之浏览器将收获不同的结果

if($http_user_agent~MSIE){
rewrite ^(.*)$/msie/$1 break;
}

3.防止盗链
localtion ~*\.(gif|jpg|png|swf|flv)${
valid_referers none blocked www.test.com *.test.com;
if($incalid_referer){
rewrite ^/(.*)http://www.test.com/block.html;
}
}

  

4.实现域名跳转
所有对www.abc.com的访问,redirect到www.test.com

server
{
listen 80;
server_name www.test.com;
index index.html index.php;
root /export/home/www
if ($host = "www.abc.com") {
rewrite ^/(.*)$ http://www.test.com/$1 permanent
}
}

  

 

http://blog.csdn.net/donghustone/article/details/11524107

Nginx区分PC或手机访问不同网站

  

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图