Maybe it's simply capitalization?

Similar to @meiqimichelle the name of the project, html file, and permalink must be the same. Maybe for some reason gh-pages is picky on capitalization in a way that the WEBrick and nginx servers aren't and that's why it would work locally.