rackerlabs / developer.rackspace.com

Gen 3 of the developer.rackspace.com Portal
Apache License 2.0
47 stars 59 forks source link

Atom feed not being found #755

Closed DonSchenck closed 9 years ago

DonSchenck commented 9 years ago

The following error is being reported in the /var/log/nginx/error.log file on developer.rackspace.com nginx webserver1 in IAD:

2014/08/05 23:01:29 [error] 19413#0: *425200 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"

rdodev commented 9 years ago

Hmmmm looking into this. Looks like a regression issue.

rdodev commented 9 years ago

Feels odd the blog feed is actually published in the root site, but I think that's deliberate. But until we have concrete plans to add more feeds, I'm inclined to move that file to the blog directory.

etoews commented 9 years ago

I put it in the root because that's where it was in the previous site. I wanted to minimize the number of changes we were making going from old to new d.r.c and lessen the risk. Moving it to the blog dir risks breaking feed clients that aren't good at following redirects.

Unless there's a necessity to move it, I think we should just leave it where it is. An error message in an nginx log file isn't a good reason to move it. Nginx should be changed to look in the appropriate place.

ycombinator commented 9 years ago

Nginx should be changed to look in the appropriate place.

From looking at https://github.com/rackerlabs/developer.rackspace.com/blob/dev/deploy/prod_web.yml#L103-L124, there is no configuration in nginx that is looking for the file under /blog/atom.xml. Some client seems to be requesting that URL. The question is: did that URL ever exist on developer.rackspace.com? If so, we should probably redirect it to /atom.xml.

etoews commented 9 years ago

Can we get a count of how many times that error is appearing in the log from different client IPs?

There might be something else awry here.

ycombinator commented 9 years ago

Here is a sampling of the logs from all 4 production web servers:

$ ansible prod_webservers -i inventory/site/ -m shell -a 'grep "/blog/atom.xml" /var/log/nginx/error.log | tail -5'
DFW_prod_webserver_2 | success | rc=0 >>
2014/10/10 22:01:36 [error] 896#0: *526063 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:06:42 [error] 896#0: *526241 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:10:37 [error] 896#0: *526354 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:13:52 [error] 896#0: *526439 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:16:42 [error] 896#0: *526542 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"

DFW_prod_webserver_1 | success | rc=0 >>
2014/10/10 21:42:41 [error] 896#0: *524760 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 21:57:51 [error] 896#0: *525298 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:00:46 [error] 896#0: *525386 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:12:02 [error] 896#0: *525714 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com", referrer: "http://devops.rackspace.com/atom.xml"
2014/10/10 22:12:59 [error] 896#0: *525757 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.183.248.252, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"

IAD_prod_webserver_1 | success | rc=0 >>
2014/10/10 21:31:50 [error] 884#0: *261261 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 21:32:30 [error] 884#0: *261261 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com", referrer: "http://devops.rackspace.com/atom.xml"
2014/10/10 21:59:47 [error] 884#0: *261649 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com", referrer: "https://developer.rackspace.com/blog/atom.xml"
2014/10/10 22:01:52 [error] 884#0: *261695 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:16:07 [error] 884#0: *261866 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"

IAD_prod_webserver_2 | success | rc=0 >>
2014/10/10 21:37:39 [error] 880#0: *261029 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 21:39:11 [error] 880#0: *261058 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com", referrer: "http://devops.rackspace.com/atom.xml"
2014/10/10 21:47:51 [error] 880#0: *261166 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 21:50:13 [error] 880#0: *261151 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com"
2014/10/10 22:03:13 [error] 880#0: *261344 open() "/var/www/html/developer.rackspace.com/blog/atom.xml" failed (2: No such file or directory), client: 10.189.254.9, server: developer.rackspace.com, request: "GET /blog/atom.xml HTTP/1.1", host: "developer.rackspace.com", referrer: "http://devops.rackspace.com/atom.xml"

Notice the referrer on some of them: http://devops.rackspace.com/atom.xml. So I curl'd that location and got this:

$ curl -v 'http://devops.rackspace.com/atom.xml'
* Hostname was NOT found in DNS cache
*   Trying 174.143.186.12...
* Connected to devops.rackspace.com (174.143.186.12) port 80 (#0)
> GET /atom.xml HTTP/1.1
> User-Agent: curl/7.35.0
> Host: devops.rackspace.com
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Fri, 10 Oct 2014 22:18:36 GMT
* Server Apache/2.2.22 (Ubuntu) is not blacklisted
< Server: Apache/2.2.22 (Ubuntu)
< Location: http://developer.rackspace.com/blog/atom.xml
< Vary: Accept-Encoding
< Content-Type: text/html; charset=iso-8859-1
< Content-Length: 338
< Age: 0
< Via: 1.1 540559-DFW1WWSG03.secops.rackspace.com
< 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://developer.rackspace.com/blog/atom.xml">here</a>.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at devops.rackspace.com Port 80</address>
</body></html>
* Connection #0 to host devops.rackspace.com left intact

I'm not sure where http://devops.rackspace.com is configured to do a redirect to http://developer.rackspace.com/blog. Investigating...

etoews commented 9 years ago

We could also move our feed to http://developer.rackspace.com/blog/atom.xml and redirect http://developer.rackspace.com/atom.xml to there. I'm a bit concerned about feed readers that can't follow redirects. I'm not sure what the lesser of the two evils is here. At least we have full control over the above.

ycombinator commented 9 years ago

@everett-toews What if we just left the feed where it is (/atom.xml) but added an nginx alias from /blog/atom.xml to /atom.xml? The HTTP client would receive a 200 for both locations, not a 301 for one of them.

etoews commented 9 years ago

+1