Как прокси и перенаправить входящие 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;
}
Другие вопросы по тегам