Help noob with redirection

Hi,

I have installed my first NGINX proxy and having a real problem with
redirects. As a example I have published externally:

https://pm.domain.com/client1
https://pm.domain.com/client2

which should then redirect to the clustered back-end servers which are
named pm01.domain.com etc. What is happening is that when I try in the
URL it comes back with the correct content but the URL in the browser
shows the back-end server named; so how do I get it to be the externally
published name ?

Config

server {
listen 443;
server_name pm.domain.com;

ssl                  on;
ssl_certificate      /etc/pki/tls/certs/proxy01c.pem;
ssl_certificate_key  /etc/pki/tls/private/proxy01k.pem;

ssl_session_timeout  5m;

ssl_protocols  SSLv2 SSLv3 TLSv1;
ssl_ciphers 

ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

access_log      /var/log/nginx/pm.domain.com-access.log main;
error_log       /var/log/nginx/pm.domain.com-error.log info;

gzip              on;
gzip_http_version 1.0;
gzip_comp_level   2;
gzip_proxied      any;
gzip_types        text/plain text/html text/css 

application/x-javascript text/xml application/xml application/xml+rss
text/javascript;

upstream projectmanagement {
   server pm01.domain.com:443;
   server pm02.domain.com:443;
}

location / {
    proxy_pass         https://projectmanagement;
    proxy_redirect     on;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    client_max_body_size       10m;
    client_body_buffer_size    128k;
}

}

Look forward to your help.

Thanks, Phil

On Wed, Jun 09, 2010 at 12:50:30PM +0100, --[ UxBoD ]-- wrote:


ssl_protocols  SSLv2 SSLv3 TLSv1;
gzip_types        text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

upstream projectmanagement {
   server pm01.domain.com:443;
   server pm02.domain.com:443;
}

location / {
    proxy_pass         https://projectmanagement;
    proxy_redirect     on;
  •     proxy_redirect     on;
    
  •     proxy_redirect     default;
    
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    client_max_body_size       10m;
    client_body_buffer_size    128k;
}

}


Igor S.
http://sysoev.ru/en/

----- Original Message -----

which should then redirect to the clustered back-end servers which
ssl on;
access_log /var/log/nginx/pm.domain.com-access.log main;
upstream projectmanagement {

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

    client_max_body_size 10m;
    client_body_buffer_size 128k;
}

}

Igor,

I have switched it from on too default but after restarting NGINX I get
the same result ?

Thanks, Phil

----- Original Message -----

gzip_comp_level 2;
location / {

Sorry, try the following proxy_redirects:

proxy_redirect https://pm01.domain.com/ /;
proxy_redirect https://pm02.domain.com/ /;

Igor, that works now using the above syntax :slight_smile: A question though is
there anyway to tell NGINX to redirect based on the proxied hostname ?
If we had pm01 … 100 then I would need to add 100 proxy_redirect
statements or can it be done with a clever single line ?

Thanks, Phil

On Wed, Jun 09, 2010 at 01:19:00PM +0100, --[ UxBoD ]-- wrote:

proxy_redirect https://pm01.domain.com/ /;
proxy_redirect https://pm02.domain.com/ /;

Igor, that works now using the above syntax :slight_smile: A question though is there anyway to tell NGINX to redirect based on the proxied hostname ? If we had pm01 … 100 then I would need to add 100 proxy_redirect statements or can it be done with a clever single line ?

Currently nginx does not support variables in the first parameter,
so you have to add 100 proxy_redirect statements.

The other way is to configure backends to use single name as main server
name
to use it in redirects.


Igor S.
http://sysoev.ru/en/

On Wed, Jun 09, 2010 at 01:05:56PM +0100, --[ UxBoD ]-- wrote:

  • proxy_redirect default;

Igor,

I have switched it from on too default but after restarting NGINX I get the same result ?

Sorry, try the following proxy_redirects:

 proxy_redirect https://pm01.domain.com/  /;
 proxy_redirect https://pm02.domain.com/  /;


Igor S.
http://sysoev.ru/en/

----- Original Message -----

Currently nginx does not support variables in the first parameter,
so you have to add 100 proxy_redirect statements.

The other way is to configure backends to use single name as main
server name
to use it in redirects.

Sorry Igor, having a mind blank! Do you mean by using DNS eg.
pm.domain.com IN A 1.2.3.4
IN
A 5.6.7.8

Thanks, Phil

On Wed, Jun 09, 2010 at 01:30:47PM +0100, --[ UxBoD ]-- wrote:

statements or can it be done with a clever single line ?
IN A 5.6.7.8
Not exactly this.
If you use Apache you should set
ServerName pm.domain.com
on every instance.


Igor S.
http://sysoev.ru/en/

----- Original Message -----

is there anyway to tell NGINX to redirect based on the proxied

on every instance.

Ah, the lightbulb has been switched on :slight_smile: Thank you very much for your
detailed responsse and help.

Thanks, Phil