1. 编辑虚拟主机配置文件/usr/local/nginx/conf/vhosts/huangzhenping.conf

    说明:nginx新增域名直接在server_name行添加(而apache用alias);$host表示域名标量;$1表示域名后面的内容;permanent表示永久重定向


server
{
    listen 80;
    server_name www.huangzhenping.cn www.huanglearn.cn;
    if ($host != 'www.huangzhengping.cn')
    {
      rewrite ^/(.*)$ http://www.huangzhenping.cn/$1 permanent;
    }
    index index.html index.htm index.php;
    root /data/www;


flag标记:

last:相当于apache的[L]标记,表示完成rewrite;之后搜索相应的url或者location

break:表示终止匹配

redirect:返回302临时重定向

permanent:返回301永久重定向


if正则:

~            区分大小写匹配

~*          不区分大小写匹配

!~ 和!~* 分别为区分大小写不匹配及不区分大小写不匹配

-f 和!-f   用来判断是否存在文件

-d和!-d  用来判断是否存在目录

-e和!-e   用来判断是否存在文件或目录

-x和!-x   用来判断文件是否可执行


全局变量:

$args   请求中的参数

$body_bytes_sent       已发送的消息体字节数

$content_length        HTTP请求信息里的"Content-Length"

$content_type       请求信息里的"Content-Type"

$document_root          针对当前请求的根路径设置值

$document_uri           与$uri相同; 比如 /test1/test2/test.php

$host       请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名; 

$http_cookie         cookie 信息

$http_referer         引用地址

$http_user_agent          客户端代理信息

$http_x_forwarded_for            

$remote_addr        客户端地址

$remote_port          客户端端口号

$remote_user         客户端用户名,认证用

$request          用户请求

$request_body_file       发往后端的本地文件名称  

$request_filename        当前请求的文件路径名,比如$request_filename:D:\nginx/html/test1/test2/test.php

$request_method        请求的方法,比如"GET"、"POST"等

$request_uri      请求的URI,带参数; 比如http://localhost:88/test1/test2/test.php

$scheme            所用的协议,比如http或者是https,比rewrite^(.+)$$scheme://example.com$1redirect; $server_addr          

$server_addr      服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费)

$server_name     请求到达的服务器名

$server_port       请求到达的服务器端口号

$server_protocol   请求的协议版本,"HTTP/1.0"或"HTTP/1.1"

$uri     请求的URI,可能和最初的值有不同,比如经过重定向之类的


 nginx域名跳转_第1张图片


   /usr/local/nginx/sbin/nginx -t

   /usr/local/nginx/sbin/nginx -s reload


2. 使用curl验证,成功跳转

    说明:www.huanglearn.cn网站跳转到www.huangzhenping.cn

 nginx域名跳转_第2张图片