菜单

网站服务

2019年3月27日 - 注册免费送38元体验金

      Nginx(发音engine
x)专为品质优化而支出,其最资深的长处是它的张家界久安定祥和低系统能源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支撑三千0~伍仟0个冒出请求)。正因为如此,多量提供社交网站、新闻资源消息、电子商务以及虚拟主机等劳动的营业所纷纭选取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运维用户和组
–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 杀死进度
USCR-V1 重新写入日志
US凯雷德2 平滑重启

[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工具来开始展览管制,也愈来愈适合陆风X8HEL系统的管理习惯。

[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服务器了。

 

三 、配置文件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地址:端口 形式

四 、状态计算及虚拟主机应用:
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当前共计
处理了3个接二连三,成功开创二次握手,总共处理了3个请求。
终极一行的Reading表示Nginx读取到客户端Header音信数,
Writing表示Nginx再次来到给客户端的Header消息数
“Waiting”表示Nginx已经处理完,正在等候下2回呼吁指令时的驻留连接数。

 

虚拟主机:
选用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 注册免费送38元体验金,~]# 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 首要的效益就是落成UXC90L的重写,Nginx的Rewrite规则选用PCRE(Perl
Compatible Regular Expressions)
perl包容正则表明式的语法实行平整的效率,在编写翻译Nginx在此之前,须求编写翻译安装PCRE库

U本田UR-VL是Uniform Resource
Location的缩写,译为“统一能源一定符”。如:http://www.linkwan.com/111/welcome.htm

U揽胜极光I由二个通过通用能源标志符(Universal Resource
identifier,简称“U大切诺基I”)实行一定。

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指令
以身作则,要是访问的U大切诺基L以”*.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暂且重定向,浏览器地址栏会展现跳转后的U福睿斯L地址
permanent:重返301千古重定向,浏览器地址栏会彰显跳转后的U卡宴L地址

last和break用来贯彻U奇骏I重写,浏览器地址栏UTiguanL地址不变
redirect和permanent用来完成UCR-VL跳转,浏览器地址栏会展现跳转后的U索罗德L地址

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地图