IIS Reverse/Forward proxy to locahost with port number - iis

I created a reverse/forward proxy rule in IIS so that it rewrites all requests from maps.mysite.com to localhost:8080.
This sort of works. But for some reason it doesn't seem to take the port it should rewrite to into account.
If I goto: maps.mysite.com:8080 then I get the correct page.
But if I goto: maps.mysite.com, then it doesn't work. This gives me a 500 Internal Server Error.
I configured the proxy like this.
Why isn't it working when I leave out the port number?

Related

ERR_SSL_PROTOCOL_ERROR when making request to server IP

I got a nodeJS express API /w nginx up and running on an ubuntu server. I've set up everything but when I try to access the API (https://167.xx.xx.xx:80/get-all-products) directly or through my client I get this error:
ERR_SSL_PROTOCOL_ERROR
I've did some searching and I found out that this could be because my server does not have a valid ssl certificate but for a ssl certificate I would need to have a domain / be the owner of the ip adress which I guess i'm not as the server is hosted by another company.
How can I fix this error without having to buy a domain for my server?
https://167.xx.xx.xx:80/... ...
I've did some searching and I found out that this could be because my
server does not have a valid ssl certificate
This isn't the case here yet. The problem instead is that you are simply trying to switch from http:// on port 80 to https:// on port 80 without having the server setup for HTTPS. Thus the client will try to speak HTTPS while the server only understands HTTP - and this causes the failure you see.
To be able to use https:// in the URL you need to setup the server for this and the configuration must use a certificate which matches the URL (domain or IP) - no way around this.

how to use IIS redirect to send requests to node in another port

I am using windows server 2008 R2 standard and I have installed a node.js app that runs fine in port 3000.
In windows server, the admin used ISS to create a Default Web Site , so the port 80 is open to everyone. This works fine, I go to mywebsite.com and I get the ISS7 logo.
I cannot run the node app directly on port 80. I have to use a proxy to send traffic from mywebsite.com:80 to localhost:3000. (is it localhost? I guess it is)
I try to do this by using Application Request Routing. According to this tutorial
I install ARR and create a new server farm named "redirect".
I put windows server IP as the server address, click advanced settings, click applicationRequestRout, change httpPort to 3000 (my node app) and hit Finish
So now the server farm named redirect represents my node on port 3000 , right?
I go to server farms > redirect > servers, double click on the one server on the list and hit Connect to the server
Click URL rewrite, Add Rule, Blank Rule under Inbound Rules
I name it "redirecctrule", pick "Wildcards" under Using and then hit Test pattern.
I put /* in Input data to test and /* in pattern (wildcard), so everything that comes from mywebsite.com can go to node , port 3000, right? Maybe here is my mistake? I dont know.
Then I hit Test, the test is ok, so I close and hit Yes to Save that rule. I also pick "Route to server farm" under Action and hit Apply on the right.
Node is running. If I go to mywebsite.com on my browser, I still get the ISS logo, not the website from node. I restarted the server and tried again, still nothing.
What am I missing here? How can I redirect traffic from ISS Web Site port 80 to node app, port 3000?
Any advice would be great, I am trying all day and it does not work.
Thanks

IIS Apache and Node.JS HTTP all on the same server

I have one windows server already running sharepoint on 80/443 and the site works correctly.
We're trying to add more functionality by installing NodeJS and Apache
I've set apache to listen on 8080 and the default website comes up.
Node is running on 3000 and I can access the explorer that way as well.
My questions come from this. The server has a complete certificate chain installed on it and https://:8080 comes up correctly, but I can't get the node stuff to work on https: Secondly it appears while I have proxy pass set up correctly within my httpd.conf, either something is wrong within that as if I goto the https://:8080 /api/and anything beyond that, I get 503 errors and the page can't be displayed.
I'm unsure what I'm doing incorrectly here as from reading the documentation on proxy module, it seems that everything is setup and configured correctly.
Netstat shows listening on 3000 and 8080 and 80/443 for my SharePoint farm.
I had to configure the ssl settings for the proxypass to use the IP address of the local machine. After doing that I was able to connect correctly.
This allowed for connecting on :3000 via telnet to the localmachine and allowed for explorer to be viewed with https://:8080 the correct way enforcing our certificates.

URL redirection using powerdns and lua scripting

I am building an internal whitelist browsing filter server for a business.
It is 95% operational.
PowerDNS intercepts the DNS request and the LUA script correctly determines if the URL is whitelisted.
The problem lies in the blacklist block page ... all I get is PAGE CANNOT BE DISPLAYED.
The LUA script is getting to this line but the actual redirect never occurs:
return 0, {{qtype=pdns.A, content="1.2.3.4"}}
The 1.2.3.4 is where I put the actual IP of the PowerDNS server itself.
Apache is not detecting that anything is getting to the server over port 80.
If I navigate to 1.2.3.4 I do get the block page so I know apache is configured correctly and I have ServerAlias set to * to accept all domains.
Thanks in advance.
First of all, you should be sure that domain resolved correctly using something like:
nslookup example.com
Secondary, DNS-cache on the client computer may prevent correct resolving;
You should use 443 port additionaly to 80 for https browser connections;
I have the simular schema with powerdns+lua+nginx and everything work fine.
If you have no connection to the apache, that's mean your browser does not resolve domain correctly.

Local IIS, how do I map a URL with a port number?

I'm runnning IIS 7 on my local dev machine. My website is up and running. To access the website, I need to enter the url with the port number in the browser's address bar (www.ScoobyDoo.dev:91). What do I need to change so I only need to enter the www.ScoobyDoo.dev portion of the url? I've done this before but I'm drawing a blank. Port 80 is hosting a different website so I can't just move this one to the default http port.
Thanks!
If you want multiple sites to reside on the same IP address then you need to use HTTP Host Headers.
Provided that your existing website doesn't use SSL then you can use host headers. To configure host headers in IIS7 you modify the "Bindings" (there's a menu item for this in the right hand side Actions pane for the site):
You want to add/edit your bindings for each site that resides on the same IP address, for example for your scoobydoo.dev site:
The caveat here is that if you have users already browsing your first site by IP address then they will need to be redirected to the site using its domain name.
You can do this by adding a site bound to the raw IP address and creating a HTTP Redirect.
I'm not sure what you're expecting to do here. If something else is binding to port 80, and your web server is binding to port 91, then you'll need to specify port 91 in the web browser when making a request to the server. By default, without being explicitly given a port in the address, a web browser will make the request on port 80 (or 443 for SSL).
You might be able to add an entry to your hosts file (c:\windows\system32\drivers\etc\hosts) where you map the non-specified port version to the specified port version, but I don't think it'll work. That file is for DNS resolution, not port mapping. Worth a try though, I suppose.
Can you clarify a bit on what exactly you're expecting? Or what you think you may have done before? I wonder if you're not giving us the whole picture here.

Resources