我使用 nginx 在一台服务器上建立了我的网站 domain.com。
每次有人点击 [1] example.com/~username 我需要显示 [2] 的内容http://example2.com/~用户名/位于其他服务器。
但保留原来的第一个域名http://example.com/~用户名
因此,当有人将 [1] 放入 nginx 请求 [2] 的内容时,但会维护 [1] 作为域名。
答案1
您希望代理传入请求。您可以在 nginx 中使用类似的配置来执行此操作:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://example2.com;
}
}
以下是所有设置的详细信息:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
答案2
假设当您的 URI 以 开头时您需要向其他服务器请求任何用户名/~
,最简单的变体是:
server {
...
location ~ ^/(~.*) {
proxy_pass http://example2.com/$1;
}
}
在较新版本的 nginx 中,这将自动将Host
HTTP 标头设置为example2.com
,但您可能还需要设置一些其他 HTTP 标头,请参阅proxy_set_header
了解更多信息。