where to point CNAME entry for cloudfoundry routes distinguished by path? - cloud-foundry

We run multiple applications in Cloudfoundry.
Now we have the requirement to distinguish app requests by path - this is clearly possible by using
cf create-route myspace mydomain.com –hostname myapp –path foo
cf map-route my-app mydomain.com –hostname myapp –path foo
cf create-route myspace mydomain.com –hostname myapp –path bar
cf map-route my-another-app mydomain.com –hostname myapp –path bar
now the requests are routed like this:
http://myapp.mydomain.com/foo -> my-app
http://myapp.mydomain.com/bar -> my-another-app
but to make this all work, I also need a DNS entry to resolve myapp.mydomain.com, to where do I point the CNAME record e.g. on cloudflare for myapp.mydomain.com?
my-app.scapp.io or my-another-app.scapp.io do not look correct, because its not one or the other I want to address, but both.

Typically you'd make a CNAME record that points to the default route assigned to your app. It looks like my-app.scapp.io in your example above, but you can run cf app <name> and find the assigned route.
Because you're using path-based routing, you'd only need one CNAME record for both apps. It would then be up to the client to select the correct path such that they are routed to the right application.

Related

What is the correct way to do a redirection from www. to the naked domain (Server or App or Domain Provider)?

I currently have an app that works with both www.domain.com and domain.com. Considering that this seems to be bad for SEO, I want it to always redirect to the naked domain.
My app works in this way:
Server: Google Cloud Platform (App engine)
App: Django
Domain provider: Godaddy
As I have researched the redirection can be done from any of these 3 options. So I want to ask: What is the best option and why?
I tested to do the redirection with GoDaddy on App Engine (An A record for www pointing to #) but when I set my custom domain in App Engine, I noticed that for the www.domain a C Record pointed to ghs.googlehosted.com setting was required in the app engine panel, I omitted that in order to do the redirection in GoDaddy, but the app wouldn't load when visiting from www.domain, a 404 error appeared (Also tried by omitting the addition of the www.domain altogether in app engine settings) So I wasn't able to accomplish this in the same fashion than an app that is hosted in a single server.
I think the easiest way would be to handle this inside the app itself like this site mentions

Cloud Foundry map-route is not working when path mentioned

In Cloud Foundry I have pushed two copies of the same application, Say app1 and app2.
I need to route a specific request from app1 to app2.
Note: app1 and app2 are one and the same, but just i have deployed twice in different name. so the /collections endpoint though it exists in app1, I would like to handle this only via app2 application.So I have created the following routes.
cf map-route app2 mydomain.com --hostname app1 --path collections
cf map-route app1 mydomain.com --hostname app1
By the above route, I expect https://app1.mydomain.com/collections request to handled by app2 application.
Except the /collections endpoint, all the other requests (https://app1.mydomain.com/*) are expected to be handled by app1.
Post the above mentioned router mapping also, I could see that https://app1.mydomain.com/collections request is being served by app1.
But when i have only the below route, expecting all the request to https://app1.mydomain.com/* is to be served by app2. this case is working fine.
cf map-route app2 mydomain.com --hostname app1
So I'm having trouble only routing my https://app1.mydomain.com/collections to a app2 application.
Kindly help me in resolving this.
The behaviour for overlapping routes is not specified in the documentation, so I think the problem that you're having is that your two rules overlap and there is no way to set a precedence that the most specific rule should win.
The solution would be to have mutually exclusive routes.

How to redirect non-www domain.com to www domain.com(WordPress blog) in AWS Route 53?

I have my non-www domain.com with GoDaddy and my WordPress Blog is hosted in AWS EC2. I'm using Route 53 to handle DNS requests. The existing solution for my question, seen in many places(including SOF) is to create two S3 buckets in the name of non-www domain and www domain for redirection of static websites. This is not my case.
I've my WordPress installed in EC2 and not using S3 for holding my Data. I hope this is not a static website and cannot follow the general solutions available.
I tried the following solution around and did not work
I tried changing the C-NAME record to www.domain.com but it did not worked.
I tried domain forward feature available with GoDaddy.com and didn't work.
I tried modifying .htaccess file and that too didn't work.
This is what my record sets in Route 53 look like
Name Type Value TTL
------ ----- ----- ----
domain.com. A xx.xx.xxx.xxx (EIP) 300
domain.com. MX 1 ASPMX.L.GOOGLE.COM 3600
5 ALT1.ASPMX.L.GOOGLE.COM
5 ALT2.ASPMX.L.GOOGLE.COM
10 ALT3.ASPMX.L.GOOGLE.COM
10 ALT4.ASPMX.L.GOOGLE.COM
domain.com. NS ns-27.awsdns-03.com. 172800
ns-1190.awsdns-20.org.
ns-2028.awsdns-61.co.uk.
ns-855.awsdns-42.net.
domain.com. SOA xxxxxxxxx 900
How can I redirect my domain.com to www.domain.com?
I was hesitant to post my comment as an answer because there are a gazillion ways to setup and configure Wordpress it seems. Anyway, to keep in the spirit of keeping this question in the amazon-web-services tag I ran a test case deploying from the AWS Wordpress Cloudformation template. I'm not sure if this is how you actually installed Wordpress but here is one way to redirect:
Make sure that your Cloudformation template completes successfully.
Here is what my Hosted Zone looked like - I have not added A records yet.
Get the instance IP address. Note that in this example I did not setup an Elastic IP. Since I knew that I would not need to stop the instance temporarily I opted to just stick with the automatically assigned, random pubic IP.
Next I made an A record for the domain apex of that IP and then an A record for www. I also changed the TTL to 60 seconds.
Once DNS propagation completed I tried accessing my domain name. As you can see, the AWS Cloudformation Wordpress installation defaults to a different path and URL.
Using the URL, http://example.com/wordpress did the trick.
I didn't go through the steps but when you go to http://example.com/wordpress it starts a setup screen. Enter all the information like DB name and password, etc. and then login to the admin panel. Once you go through all of that you go to the General settings screen. This is where your configuration will probably be different but for mine, the URLs were listed as http://example.com/wordpress. I simply changed these URLs to http://www.example.com/wordpress. (As an aside, I also tried changing and saving the permalink section to generate an .htaccess file but one was not generated due to the inability to write to the file. I tried making my own but I kept running into "too many redirect" messages so this might not be a route you want to take depending on your install.)
You will need to make a change in the index.php file. For my installation it was located at /var/www/html/wordpress/index.php. Make sure to make a copy before changing it. I simply added /wordpress/ in front of wp-blog-header.php. Again, this install puts the Wordpress files in the directory /wordpress - your install will probably be different.
Next you need to copy that modified index.php file to /var/www/html/ and then restart the httpd service.
To test the change I cleared out my DNS cache and opened up the network section of developer tools in Chrome.
I then opened a new tab (have to open developer tools again) and then typed in the naked domain name.
As you can see, the URL redirected to www.example.com with a 301 permanent redirect.
I'll through another suggestion out here while I'm at it. You can use the free version of Cloudflare to just do the redirect for you. Cloudflare offers a bunch of other free and useful services like CDN so if you don't mind depending on a 3rd party service (a reputable one by the way) it might be easier with more value add. As I highlighted in the screenshot however, note that if you use forwarding you cannot use some of the other advanced rule sets.
Anyway, I hope this helps!

I hosted Opencart on openshift, But after CNAME mapping, Application is showing 404 Error

I have successfully deployed opencart on openshift, and It is running properly with the url provided by the openshift, But when I have mapped that URL with the CNAME in my domain name, It is showing Error that App is not found.
Can someone please help me for the same.
You may need to set your alias to the domain name you have chosen. You can do this via the web console. Aliases are what allow you to use your own domain names for your applications on OpenShift.
It's a 2 step process
(1) Set up the CNAME record with your DNS provider
it sounds like you have already done this at your DNS provider
(2) Configure OpenShift to use your alias
so from the web console, go to your application's main page by clicking on Settings icon then click on "Change" link to enter your custom domain name e.g. www.example.com or something.example.com.
Let us know if that works,
Diane

Django/Heroku hide heroku url by subdomains name

I'm currently deploying some django app on Heroku.
I bought a domain name on Gandi, and made a subdomain redirecting (temporary redirection) on my heroku server. Currently, the subdomain is redirecting to the machine, this is working.
mysubdomain.mydomain.com --> something.heroku.com
However, when I navigate throught my website, I still have on my address bar the heroku domain name in front of my page (something.heroku.com/detailpage/slugforexample)
I would like to hide the heroku domain name by my subdomain name (to have something like subdomain.domain.com/detailpage/slugforexample)
I set the Gandi configuration (temporary redirection to heroku server)
I set on heroku domains:add with my subdomain.
Where do I have to configure the redirection ? Is it in heroku, wsgi, django conf ?
You shouldn't use Web Forwarding to achieve what you want. You should add a CNAME entry on GANDI for mysubdomain on your mydomain.com domain with a value of something.heroku.com. You should then add a custom domain to your application via heroku domains:add mysubdomain.mydomain.com - it looks like you've already done this last bit.
This means you will be able to navigate to mysubdomain.mydomain.com and the address bar will rename as this.