I want my App Engine project to be able to receive/handle traffic that comes in from a custom port (i.e. https://www.my-appengine-project.com:12999/some-endpoint)
I'm currently using a Google Cloud external HTTPS Load Balancer, but it seems that you can only configure it to receive traffic on port 443.
https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications
What can I do to make this work? I need to receive traffic on a specific port.
You cannot implement custom port numbers with the Google Cloud HTTP/HTTPS Load Balancer. The supported backend port numbers are 80 and 8080 for HTTP and only 443 for HTTPS.
Reference:
Forwarding Rules and Addresses
If you want to modify App Engine to listen on port 12999 then you cannot use domain names (only IP addresses).
In summary, you will need to switch to another service such as Compute Engine.
Related
How does one configure Google Cloud Service to have a domain serve static files file storage (ie, html/css/js, via port 80), but send requests to the same domain on port 3000 go to App Engine, for a RESTFUL web app?
ie,
https://foo.com/ -- html/css/js served via Google Storage
https://foo.com/users:3000 -- ping app engine
Note: I do know how to host static files on Google Storage and use it as a website. What I need to know is how to configure requests to the same domain on port 3000 go to app engine instead.
As far as I understand, when serving static websites all the traffic goes to port 80. It will not be possible to route request depending on the port on the static website. A workaround here would be to have your main domain point to the static website, whereas you could have your subdomain pointing to the GAE application. This can be done by mapping a custom subdomain.
I deployed a GAE Flexible App built on SpringBoot successfully on GAE Flex environment but if I set the app to run on port 8090, sending a request to the App gives a 502(Bad Gateway). Setting the port to 8080 responds to the requests successfully.
I specified Port Forwarding in the Firewall rule which seems to be useless.
So the question is,
Why does my GAE Flexible App responds to HTTP requests on port 8080 automatically?
And,
Is there no way to use any other port for my Application?
Google Compute Engine instances can be secured behind a firewall that allows you to open the instance by ports and/or IP addresses.
Google App Engine doesn't use a single IP address.
I have a Compute Engine server running Nginx that I would like to completely lock down so the only way to access it is through an application on Google App Engine, is this possible?
If not, is there a simple way to send a POST request with a string of characters to Nginx, that if not present, the Nginx server would send people to a 404?
Use HTTP authentication as per the question Dan has linked to. There is no viable network/IP/firewall mechanism to restrict access.
The HTTP authentication works just fine!
I am trying to build a gRPC backend and trying to deploy it on an AppEngine Managed VM. Is HTTP/2 supported? If not, can I simply expose it on a separate port and disable health checks or should I deploy this on compute engine/container engine.
At this point http/2 is not supported by Managed VMs. The best current solution is to run your http/2 server on a different port and specify the port number to forward in app.yaml (doc link).
You can keep health checking active on the default (8080) port if you want as long as you have an http endpoint listening there as well.
Background
Before dotCloud decides to shut down its free sandbox service, I used it as sort of a reverse proxy to reroute all requests to a particular domain, to a local server of mine in which I'm hosting a Mono based application (.NET 3.5 web app running on a Cent-OS Linux). Essentially, the domain forwarded the requests to my dotCloud app and the app, through SSH, to my local server.
Question
I wonder if similar setup is possible with Google App Engine. Any help is appreciated.
More Information
I got the idea from here. My dotCloud app is nothing but a Nginx configuration file that forwards all http(s) requests to a SSH port that was bound to a local port (which I configured for my web server to use).
As for my motive, well, I bought a host service with PHP stack and later on decided not to use PHP. So in order to avoid another purchase I used dotCloud.