NGINX中的差异HTTP重定向与反向代理

cyn*_*uit 2 apache ssl redirect reverse-proxy nginx

我在理解反向代理(即使用proxy_pass指令和给定的上游服务器)和301永久重定向之间的区别时遇到了一些困难.它们如何相似/不同?

反向代理

upstream backend {
    server backend1.example.com       weight=5;
    server backend2.example.com:8080;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
Run Code Online (Sandbox Code Playgroud)

HHTP重定向

Apache示例:http://www.inmotionhosting.com/support/website/htaccess/redirect-without-changing-url

NGINX示例:

server {
    listen 80;
    server_name domain1.com;
    return 301 $scheme://domain2.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)

因此,似乎两种方法与最终用户的观点没有区别.我想确保有效的带宽使用,同时使用SSL.目前,应用服务器使用自己的自签名SSL证书和Nginx.将用户从标准Web托管公司(hostgator,godaddy等)托管的网站重定向到单独的服务器应用服务器的建议方法是什么?

Ste*_*ich 7

通过重定向,服务器告诉客户端在其他地方寻找资源.客户将知道这个新位置.必须可以从客户端访问新位置.
反向代理转而将客户端的请求转发到其他位置,并将响应从该位置发送回客户端.这意味着客户端不知道新位置,并且客户端不需要直接访问新位置.