@User99

Как проксировать запросы в nginx?

Есть сервер с сайтом(mysite.ru) на IIS(ip сервера 192.168.1.2) + несколько веб приложении Asp.net (web1.mysite.ru, web2.mysite.ru ...).
Потребовалась добавить сайт на ngnix или на apache (движок на iis не работает, после шаманства начал работать, но криво). Установил на виртуальке ubuntu на нем ngnix (ip сервера 192.168.1.3).
upstream web_servers {
server 192.168.1.2;
server 192.168.1.3;
}
#порт
server {
listen 80;
location / {
proxy_pass http://mysite.ru;
# настройка заголовков
proxy_set_header X-proxy 192.168.1.3;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_next_upstream     error timeout invalid_header http_500 http_404;
proxy_set_header X-Client-IP $remote_addr;
}
}

Вопрос: Как перенаправлять запросы на нужный сервер? например пользователь вводит в браузере: mysite.ru nginx его должен обработать и послать на IIS сервер, то есть на 192.168.1.2, если обращается к веб-приложению web1.mysite.ru тоже должен посылать на IIS а если corp1.mysite.ru то должен загрузиться сайт на nginx. На правильном ли я пути? что и как надо делать?
  • Вопрос задан
  • 306 просмотров
Пригласить эксперта
Ответы на вопрос 1
server {
    listen 80;
    server_name mysite.ru;
    location / {
        proxy_pass http://192.168.1.2;
        proxy_set_header X-proxy 192.168.1.3;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Client-IP $remote_addr;
    }
}
server {
    listen 80;
    server_name web1.mysite.ru;
    location / {
        proxy_pass http://192.168.1.2;
        proxy_set_header X-proxy 192.168.1.3;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Client-IP $remote_addr;
    }
}
server {
    listen 80;
    server_name corp1.mysite.ru;
    root /var/www/corp1.mysite.ru
    Тут описываете свои location для сайта (php/статика/....)
}

Вам не нужен upstream так как сервера не дублируются
Ну и добавлять nginx как upstream сам на себя уж точно не надо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы