NGINX переписать после получения ответа от другого NGINX балансировщика нагрузки - PullRequest
0 голосов
/ 14 января 2020

Я новичок ie с NGINX и учусь для перехода с IIS 7.5. В настоящее время у меня возникают проблемы с работой NGINX, действующим в качестве обратного прокси-сервера в демилитаризованной зоне против другого NGINX, который действует как балансировщик нагрузки в intr anet. Веб-страница содержит URL-адреса, указывающие на домен intr anet, в котором находится веб-сервер wordpress, поэтому я пытаюсь переписать выходные данные в обратном прокси-сервере, чтобы изменить эти неправильные URL-адреса с помощью publi c one.

До сих пор я пытался сделать перезапись внутри местоположения с регулярными выражениями и без них, перенаправление с другой конфигурации сервера, когда имя сервера является внутренним именем сервера, и перезапись из местоположения безрезультатно. SSL настроен правильно, а другие части для краткости опущены.

Это релевантная часть текущей конфигурации:

  server {
    listen 80;
     listen        443 ssl http2;
    server_name   internalwebsvr.yourdomain.local; # this does not have any sense to me but..
    # rewrite ^(/) https://www.yourdomain.org;
    # rewrite http://internalwebsvr.yourdomain.local https://www.yourdomain.org;
    # rewrite internalwebsvr.yourdomain.local www.yourdomain.org;
    # rewrite (.*)$ https://www.yourdomain.org$request_uri;
    return 301 https://www.yourdomain.org
  }

  server {
     listen        443 ssl http2;
    server_name   www.yourdomain.org;

    location / {
       # I tried the same rewrites shown before and others attempted here with flags break or last or permanent.
        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;
        proxy_pass http://loadbalancer.yourdomain.local;
        proxy_read_timeout 90;
        # proxy_redirect http://internalwebsvr.yourdomain.local https://www.yourdomain.org; # it does not work either
        # another place where I tried those rewrites shown and others that I don't remember but none of them worked using different flags
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

Когда я попытался переписать внутри места, я закомментировал Первый сервер и наоборот. Конечно, получающаяся страница не загружает изображения, javascript или css, потому что все эти URL-адреса указывают на внутренний компьютер (internalwebsvr, который находится за балансировщиком нагрузки, который, в свою очередь, является просто другим обратным прокси-сервером). Я читал документацию, но ничего не получалось. Я даже попробовал тест регулярного выражения, чтобы увидеть ошибки в регулярном выражении, но безрезультатно. Я думаю, что решение должно быть простым, но я просто не понимаю. Заранее спасибо.

...