1. 编辑虚拟主机配置文件/usr/local/nginx/conf/vhosts/huangzhenping.conf
说明:nginx新增域名直接在server_name行添加(而apache用alias);$host表示域名标量;$1表示域名后面的内容;permanent表示永久重定向
1
2
3
4
5
6
7
8
9
10
|
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,可能和最初的值有不同,比如经过重定向之类的
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
2. 使用curl验证,成功跳转
说明:www.huanglearn.cn网站跳转到www.huangzhenping.cn