nginx的重定向和nginx的反向代理的原理还是有区别的。当把nginx用作URL重定向功能时,当客户端访问网站时,nginx会自动把网站链接跳转到指定的地址,在客户端浏览器地址栏会发现明明访问的是A域名(ip),却显示出了访问B域名(ip),也就是nginx把收到的客户端的请求后把客户端要请求的信息对应的服务器地址发给客户端,让客户端自己去获取,而nginx会返回302正确信息,这就是nginx的URL的重定向功能(rewrite);而nginx作为反向代理服务器时,当浏览器访问网站时,nginx反向代理服务器会代替客户端向后端服务器查找需要的东西,然后nginx反向代理服务器会把这些找到的东西传给客户端。

    在这里nginx的搭建就不说了。

[root@nginx conf]# cat nginx.conf

user  nobody;

worker_processes  1;

error_log  logs/error.log;

pid        logs/nginx.pid;


events {

    worker_connections  1024;

    use epoll;

}


http {

    include       mime.types;

    default_type  application/octet-stream;


    sendfile        on;

    keepalive_timeout  65;

    include extra/rewrite.conf;   ///引用URL重定向文件。

}


[root@nginx extra]# cat rewrite.conf 

server {

    listen 80;

    server_name 10.10.16.29;

    

    location / {

rewrite ^/ http://10.10.16.91;    ///将客户端的请求重定向到10.10.16.91这台机器。

    }

}


[root@nginx sbin]# ./nginx -s reload

nginx作为重定向服务器的地址是10.10.16.29,现在在客户端上面访问10.10.16.29,发现nginx自动为请求做了跳转:

wKioL1Ph7HCwG7rFAAD8yQxJzO8900.jpg

发现在浏览器上输入http://10.10.16.29,浏览器自动跳转到了10.10.16.91,同时得到了10.10.16.91网站的主页,这表明nginx的URL重定向功能实现了!