Can nginx hide port number and rewrites for virtualhost?


#1

I’m running Oracle Collab Suite on port 7777 and 7778. Oracle installed
its own Apache and hacking it has proven to be difficult. For one thing,
I can’t seem to get VirtualHost to work correctly. Since it doesnt use
port 80 by default, I decided to put nginx in front of it. I managed to
proxy pass port 80 to 7778. However, it doesnt stop there. Here’s how
things are now.

My mail is pointed to the following URL:
http://mail.domain.com:7778/ocsclient/
My conferencing portal is pointed to:
http://mail.domain.com:7778/imtapp/app/prelogin.uix

As you can see, the URLs are pointed to mail because that’s what the
machine name is called. I managed to create a CNAME which works but once
it redirects after you log in, it goes back to
http://mail.domain.com:7778/
So, two things …

1 - How can I hide the port number, I think I got it to work using
proxy_pass but that only seems to work for one “server.”

server {
listen 80;
server_name mail.domain.com;

location / {
  index index.html;
  proxy_pass http://mail.domain.com:7778;
}

}

I added a second “server” directive for “conference.domain.com” but it
sends me in a loop.

2 - How can I rewrite my URL so that if I go to “conference.domain.com
it doesn’t change to “mail.domain.com.” Don’t forget the app was
installed and takes the hostname of the server which is mail.domain.com.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,944,944#msg-944


#2

On Thu, Apr 09, 2009 at 08:56:59PM -0400, sdotsen wrote:

server {

2 - How can I rewrite my URL so that if I go to “conference.domain.com” it doesn’t change to “mail.domain.com.” Don’t forget the app was installed and takes the hostname of the server which is mail.domain.com.

http://wiki.nginx.org/NginxHttpProxyModule#proxy_redirect

However, it rewrites "Location"s header only. It can not rewrite links
inside HTML.