It’s simple to create a website in a few minutes using Google Sites. And it’s even simpler to connect a custom domain to that by adding a
But what if we want to host our Google Sites project, on a subroute / subURL of our current website?
Nginx is always an option. With the help of
porxy_pass we can directly forward traffic to/from Google Sites and surely we have to pass the
Host header with the value
sites.google.com which means, Google’s load balancer, has to pipe our request to its related server.
set $google_sites "sites.google.com";
set $google_sites_url "organization_name/site_name";
rewrite /(.*) /$google_sites_url/$1 break;
proxy_set_header Host $google_sites;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Accept-Encoding "";
proxy_set_header Accept-Language $http_accept_language;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
While I was testing, there wasn’t heavy traffic on my domain, but I’m not sure how AntiSpam services on the Google side will behave. Will they ban our server’s IP address? IDK. Hope that forwarding the agent, the client IP, etc has a positive effect.
window.location compares it with Google Sites published URL. I figured out that this is due to a
.js file hosted on
gstatic.com which is a CDN for Google’s static files and it’s responsible for some lazy loading of content such as menus. Maybe some
window.reload() thing running in there. So I added some simple rules that will block that file in a dirty way:
sub_filter sites.google.com/$google_sites_url $host;
sub_filter "www.gstatic.com/_/atari/_/js" "127.0.0.1/blocked/_/atari/_/js";
Maybe the better way is to
_/atari to a subroute in our reverse proxy and write some code in Lua to find and stop that specific function.
If you have any comments on the reload problem or AntiSpam please let me know.
When it comes to web servers and web administration, Nginx can be a fast and cheap response to almost any expensive problem.