如何代理和重定向传入的 http 请求

如何代理和重定向传入的 http 请求

我的服务器有公共主机名my_machine.my_company.org:8080。我想将所有传入的 http 请求重定向到 localhost:8080。

我该怎么做?我使用的是 ubuntu 15.10。

我为什么要这样做?因为我有 的 SSO 证书localhost:8080,但没有公共主机名的证书。

答案1

本指南解释了如何将 NGINX 设置为 Jenkins 的反向代理,但你可以省略 Jenkins 部分并最终使用反向代理。

它可以归结为安装 NGINX,然后为您想要代理的站点添加以下内容:

server {

    listen 80;
    server_name my_machine.my_company.org;


    access_log            /var/log/nginx/my_machine.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 http://my_machine.my_company.org:8080;
    }
  }

编辑:如果您只想重定向请求,那么可以请使用以下设置。不过,对于从其他机器访问站点的用户来说,这将导致失败。

server {
   listen 80;
   return 301 http://my_machine.my_company.org$request_uri;
}

相关内容