For virtual hosting I use this wrapper for ns_conn function:

        rename ns_conn _ns_conn
        proc ns_conn {args} {
    set host [string tolower [ns_set get [ns_conn headers] Host]]
            if {[string match [lindex $args 0] "host"]} {
                regexp {[^:]+} $host host
                return $host
            } elseif {[string match [lindex $args 0] "server"]} {
                regexp {[^:\.]+} $host host
                return $host
            } elseif {[string match [lindex $args 0] "port"]} {
                if { [regexp {:(\d+)} $host str port] == 1 } {
                    return $port
                }
                return
            } elseif {[string match [lindex $args 0] "protocol"]} {
                if {[string equal [ns_set get [ns_conn headers]
"X-Forwarded-Proto"] "https"]} {
                    return https
                }
                return http
            } elseif {[string match [lindex $args 0] "location"]} {
                return [ns_conn protocol]://$host
            } else {
                return [_ns_conn {*}$args]
            }
        }


Reverse-proxy (HAProxy,Pound,etc.) is adding headers X-Forwarded-Proto for
https connections.


2011/2/3 Janine Ohmer <jan...@furfly.net>

> I'm moving some sites onto an Amazon EC2 instance, which has only one IP
> address, so I'm using nginx to make this work.  The websites (both Apache
> and AOLserver) are running on various internal ports.  The site I'm having
> trouble with is running on http://localhost:8082 internally, and on
> http://shared.furfly.net to everyone coming in through nginx.
>
> My problem is the value returned by [ns_conn location], which is
> http://shared.furfly.net:8082.  This is partially correct;  I told the
> site it's hostname is shared.furfly.net and it seems to be ok with that.
>  But I can't get away with telling it that it's running on port 80, and
> [ns_conn location] seems to be returning whatever's in the config file.
>  What I want, of course, is just http://shared.furfly.net.
>
> Is there some way to set this up so it returns the desired value, even
> though from AOLserver's point of view that's not exactly correct?
>
> thanks,
>
> janine
>
> ---
> Janine Ohmer (formerly Sisk)
> President/CEO of furfly, LLC
> 503-693-6407
>
>
> --
> AOLserver - http://www.aolserver.com/
>
> To Remove yourself from this list, simply send an email to <
> lists...@listserv.aol.com> with the
> body of "SIGNOFF AOLSERVER" in the email message. You can leave the
> Subject: field of your email blank.
>



-- 
Best regards, Alexey Pechnikov.
http://pechnikov.tel/


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to 
<lists...@listserv.aol.com> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to