使用localhost或其他远程地址的特定路径重定向请求

时间:2015-02-03 17:31:13

标签: hosts

我想在加载网站时在本地加载文件a.js(例如example.com)。通常,我可以将/etc/hosts更改为example.com127.0.1.1,但我想要加载所有文件{{1} }。

解释得更好

我想:

a.js

1 个答案:

答案 0 :(得分:1)

这样做的一种方式(不是最快的)是在服务器配置中引入代理传递(下面用nginx显示,但可能带有apache或其他):

  1. 将您的/etc/hosts更改为将问题中的目标域名(example.com)重定向到127.0.0.1
  2. 在你的nginx配置中引入两个代理传递:

    我。特定文件(a.js)的代理传递到本地文件。

    II。代理将所有其他路径传递回目标域的远程IP(example.com)。此代理传递必须是IP地址(可以使用nslookup example.com获得),因为在我们在步骤1中设置主机时,将阻止使用域example.com

        server {
                listen 80;
                server_name example.com;
    
                location /a.js {
                        # your local server
                        proxy_pass http://localhost:80/; 
                        proxy_set_header Host      $host;
                        proxy_set_header X-Real-IP $remote_addr;
                }
    
                location / {
                        # everything else back to the IP of example.com
                        proxy_pass http://<REMOTE_IP>/; 
                        proxy_set_header Host      $host;
                        proxy_set_header X-Real-IP $remote_addr;
                }
            }