nginx的重定向和nginx的反向代理的原理仍是有區別的。當把nginx用做URL重定向功能時,當客戶端訪問網站時,nginx會自動把網站連接跳轉到指定的地址,在客戶端瀏覽器地址欄會發現明明訪問的是A域名(ip),卻顯示出了訪問B域名(ip),也就是nginx把收到的客戶端的請求後把客戶端要請求的信息對應的服務器地址發給客戶端,讓客戶端本身去獲取,而nginx會返回302正確信息,這就是nginx的URL的重定向功能(rewrite);而nginx做爲反向代理服務器時,當瀏覽器訪問網站時,nginx反向代理服務器會代替客戶端向後端服務器查找須要的東西,而後nginx反向代理服務器會把這些找到的東西傳給客戶端。
nginx
在這裏nginx的搭建就不說了。後端
[root@nginx conf]# cat nginx.conf瀏覽器
user nobody;服務器
worker_processes 1;app
error_log logs/error.log;ide
pid logs/nginx.pid;網站
events {spa
worker_connections 1024;代理
use epoll;server
}
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自動爲請求作了跳轉:
發如今瀏覽器上輸入http://10.10.16.29,瀏覽器自動跳轉到了10.10.16.91,同時獲得了10.10.16.91網站的主頁,這代表nginx的URL重定向功能實現了!