Originally posted by atomsymbol
Announcement
Collapse
No announcement yet.
Scaleway's EPYC Powered Cloud Is Delivering Competitive Performance & Incredible Value
Collapse
X
-
-
Originally posted by atomsymbol
You are proposing to "regenerate" anandtech.com and phoronix.com into anandronix.com/tech and anandronix.com/phoro! It is possible in theory, but unlikely to happen in practice.
If these things are real world issues for you, then hurry up and learn how it's done before people realise they're flying blind
Leave a comment:
-
Originally posted by atomsymbol
How are you proposing to enable both "wget http://100.100.100.100:80/index.html" and "wget http://200.200.200.200:80/index.html" if you allocate only a single public IP address?
So firstly, you come up with some mapping scheme. Here's one example. Let's say the 1st part of the URI will be something for your proxy to consume and act on, and that by convention, it will start wtih a 'p_' ( which I'll nominate as meaning 'proxy hint' ). The next part will be a port offset ... and let's say the backend port numbers start at 10000. So, for example:
p_100 will mean "proxy this request to port 10100 ( ie 10000 - our base port, plus 100, which is our offset ).
p_200 will mean "proxy this request to port 10100 ( ie 10000 - our base port, plus 200, which is our offset ).
---
So http://100.100.100.100:80/index.html you'd expose externally as:
http://100.100.100.100:80/p_100/index.html
... and the service which used to listen on 100.100.100.100:80 would be running on 100.100.100.100:10100
Another way of expressing this is:
/p_100 ==> 127.0.0.1:10100, or:
/p_100 ==> 100.100.100.100:10100
Then http://200.200.200.200:80/index.html you'd expose externally as:
http://100.100.100.100:80/p_200/index.html
... and the service which used to listen on 200.200.200.200:80 would be running on 100.100.100.100:10200
Another way of expressing this is:
/p_200 ==> 127.0.0.1:10200, or:
/p_200 ==> 100.100.100.100:10200
---
The proxy could modify the URI on the way through ( eg strip out the proxy hint ... which you might do in a regular expression ... eg:
s/\/p_[\d]*\//
This would mean that the backend services wouldn't have to be altered to know about the leading proxy hint in the incoming requests.
---
This is but 1 mapping scheme. You can come up with your own. I used numbers in the mapping scheme because it makes it pretty explicit what's happening. Other people use more descriptive mapping URI components, like:
/auth ==> 10100
/products ==> 10101
/users ==> 10102
... etc.
You obviously need to regenerate all your URLs. There is no way to switch to using a single IP without regenerating your URLs. But the end result is much more flexible, and frankly, it's the way everybody does it. When your site becomes busy enough to warrant expanding onto >1 server ( say your products service is getting hammered ), then you just deploy the service on another host, and update your proxy rules to know about the new location to map to ... ie you don't need to rewrite any end-user-facing URLs to make backend changes.
There are lots of proxies. nginx is popular, fast, often used for this kind of thing, and does https termination. haproxy would be another option.
- Likes 1
Leave a comment:
-
I've been using scaleway for more than 1 year, and i'm impressed, price, performance, quality, everything is there
And Unlimited bandwidth !!!!!! what else do you need ?
Leave a comment:
-
Originally posted by atomsymbol
IP addresses is are parameters.
Leave a comment:
-
Originally posted by atomsymbol
I have a small HTTP/HTTPS web server implemented in Go that dispatches URLs to different code/data paths depending on request's IP address and depending on URL's path. I am not forwarding requests to different executables (via Linux sockets or pipes), and if that need might arise in the future I believe it won't be hard to implement in Go. nginx or apache would unnecessarily increase the complexity of the server without improving its function.
Leave a comment:
-
Originally posted by atomsymbol
Thank you for your suggestion, but it does not suit my needs.
Leave a comment:
-
Originally posted by atomsymbol
The programmer cannot freely choose the HTTP/HTTPS port (default is 80/443). The process of IP address resolution doesn't include the port number. A non-standard HTTP/HTTPS server port would mean that the browsing user has to specify it which affects user-friendliness.
In other cases, I agree with you.
/login => 10000
/user => 10001
/product => 10002
/booking => 10003
You'd then run these services on the above ports, and access them via the SAME IP. nginx, apache, haproxy ... these can all do this. Read up on it.
Leave a comment:
-
Originally posted by anarki2 View PostDO have 12 datacenters and more than 1 million customers so saying they're not "for the masses" is quite a stretch, too.
Leave a comment:
-
Originally posted by atomsymbol
The programmer cannot freely choose the HTTP/HTTPS port (default is 80/443). The process of IP address resolution doesn't include the port number. A non-standard HTTP/HTTPS server port would mean that the browsing user has to specify it which affects user-friendliness.
In other cases, I agree with you.
- Likes 1
Leave a comment:
Leave a comment: