Proxying to ip-camera

Hi,

I have the web site and would like to proxying all requests to /ipcam
location to internal ip-camera.

website http://site.com
ip-cam http://site.com/ipcam

Below config:

location /ipcam {
proxy_pass http://192.168.20.99:80/;
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
}

All works fine, but ip-cam can not determine UA and therefore I gets
broken login page and unable to login.

Below the error log from console:

ReferenceError: Browser is not defined
if(!(Browser.ie7 || Browser.ie8)){

With port redirection by firewall all works fine.

Is anybody can help me. IP-camera - Dahua.


Vitaliy

location /ipcam {
ReferenceError: Browser is not defined
if(!(Browser.ie7 || Browser.ie8)){

With port redirection by firewall all works fine.

Is anybody can help me. IP-camera - Dahua.

As I can see the problem is in not proxying static content like JS and
CSS. Dynamic works fine.

location /ipcam {
proxy_pass http://192.168.20.99:80/;

location ~ \.css {
     proxy_pass http://192.168.20.99:80/
}

}

This is not working.

On Thu, Apr 07, 2016 at 06:44:08PM +0300, wishmaster wrote:

Hi there,

I have the web site and would like to proxying all requests to /ipcam location
to internal ip-camera.

website http://site.com
ip-cam http://site.com/ipcam

With port redirection by firewall all works fine.

This is not working.
Your first config would probably work if that was the only config in the
server{} block. Since it appears that you have some other configuration
there, possibly

location ^~ /ipcam/ {
proxy_pass http://192.168.20.99:80/;
}

will do what you want. Note: location and proxy_pass both end in a /,
and ^~ is used in the location directive.

http://nginx.org/r/location
http://nginx.org/r/proxy_pass

Good luck with it,

f

Francis D. [email protected]

On Fri, Apr 08, 2016 at 08:45:48AM +0300, wishmaster wrote:

On Thu, Apr 07, 2016 at 06:44:08PM +0300, wishmaster wrote:

Hi there,

I have the web site and would like to proxying all requests to /ipcam
location to internal ip-camera.

website http://site.com
ip-cam http://site.com/ipcam

With port redirection by firewall all works fine.

location ^~ /ipcam/ {
proxy_pass http://192.168.20.99:80/;
}

Heh, this server block has another locations as well. E.g. location .css {…}
and so on.
The second problem is I want to proxying location “/ipcam” to “/” on the
ip-camera and I think I must use sub module to overwrite pathes of returned css,js
in HTML pages.

You can try that.

Alternatively, if you know the (static) list of urls that the ip-camera
uses, you could proxy_pass for each one of those (and make sure that
your main web service does not use any of the same ones). Or, if the
content from those urls is constant, you could just copy the content to
the same urls on your main web server and then not have to proxy_pass
the extra ones.

I suspect it will be easier if you can configure the 192.168.20.99
server
to believe that its application is installed at /ipcam/ instead of /.

And if that is not possible, it may be easier if you use a new server
name
for just the camera – http://ipcam.site.com which just uses proxy_pass
for everything.

In general, I find that it is not trivial to reverse-proxy a web site to
a different hierarchy level in the url space unless the site was written
with that in mind.

Good luck with it,

f

Francis D. [email protected]

Hi,

— Original message —
From: “Francis D.” [email protected]
Date: 8 April 2016, 10:12:08

With port redirection by firewall all works fine.
Alternatively, if you know the (static) list of urls that the ip-camera
uses, you could proxy_pass for each one of those (and make sure that
your main web service does not use any of the same ones). Or, if the
content from those urls is constant, you could just copy the content to
the same urls on your main web server and then not have to proxy_pass
the extra ones.

Yes, I have thought about this. This will work.

I suspect it will be easier if you can configure the 192.168.20.99 server
to believe that its application is installed at /ipcam/ instead of /.

And if that is not possible, it may be easier if you use a new server name
for just the camera – http://ipcam.site.com which just uses proxy_pass
for everything.

I think this is the esiest way. Thanks.

In general, I find that it is not trivial to reverse-proxy a web site to
a different hierarchy level in the url space unless the site was written
with that in mind.

Yes, you truth.

Good luck with it,

f

Francis D. [email protected]


Vitaliy

Hi, Francis.

This is not working.
and ^~ is used in the location directive.
Heh, this server block has another locations as well. E.g. location
.css {…} and so on.
The second problem is I want to proxying location “/ipcam” to “/” on the
ip-camera and I think I must use sub module to overwrite pathes of
returned css,js in HTML pages.


Vitaliy