mirror of
https://github.com/golang/go
synced 2024-11-18 11:24:41 -07:00
837e80568c
ReverseProxy doesn't re-set the Request's Host field, only Request.URL.Host. The HTTP/2 client prefers Request.Host over Request.URL.Host, so this results in the request being sent back to the host that originally accepted the request. This results in an infinite redirect (and consumption of many connections to itself). See Issue golang/go#28168 for details. Replace it with a simple proxy that drops all the headers (except Content-Type). I tried setting the proxy.Director, but it still didn't work. Could do with some more investigation. Fixes golang/go#28134. Change-Id: I5051ce72a379dcacfbe8484f58f8cf7d9385024d Reviewed-on: https://go-review.googlesource.com/c/141718 Run-TryBot: Chris Broadfoot <cbro@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> |
||
---|---|---|
.. | ||
.gitignore | ||
app.dev.yaml | ||
app.prod.yaml | ||
appinit.go | ||
autocert.go | ||
blog.go | ||
cloudbuild.yaml | ||
codewalk.go | ||
dl.go | ||
doc.go | ||
Dockerfile.prod | ||
generate-index.bash | ||
godoc_test.go | ||
goroot.go | ||
handlers.go | ||
hg-git-mapping.bin | ||
index.go | ||
main.go | ||
Makefile | ||
play.go | ||
README.godoc-app | ||
regtest_test.go | ||
x.go |
godoc on Google App Engine ========================== Prerequisites ------------- * Google Cloud SDK https://cloud.google.com/sdk/ * Redis * Go sources under $GOROOT * Godoc sources inside $GOPATH (go get -d golang.org/x/tools/cmd/godoc) Running locally, in production mode ----------------------------------- Build the app: go build -tags golangorg Run the app: ./godoc godoc should come up at http://localhost:8080 Use the PORT environment variable to change the port: PORT=8081 ./godoc Running locally, in production mode, using Docker ------------------------------------------------- Build the app's Docker container: make docker-build Make sure redis is running on port 6379: $ echo PING | nc localhost 6379 +PONG ^C Run the datastore emulator: gcloud beta emulators datastore start --project golang-org In another terminal window, run the container: $(gcloud beta emulators datastore env-init) docker run --rm \ --net host \ --env GODOC_REDIS_ADDR=localhost:6379 \ --env DATASTORE_EMULATOR_HOST=$DATASTORE_EMULATOR_HOST \ --env DATASTORE_PROJECT_ID=$DATASTORE_PROJECT_ID \ gcr.io/golang-org/godoc godoc should come up at http://localhost:8080 Deploying to golang.org ----------------------- Make sure you're signed in to gcloud: gcloud auth login Build the image, push it to gcr.io, and deploy to Flex: make cloud-build deploy Point the load balancer to the newly deployed version: (This also runs regression tests) make publish Stop and/or delete down any very old versions. (Stopped versions can be re-started.) Keep at least one older verson to roll back to, just in case. You can also migrate traffic to the new version via this UI. https://console.cloud.google.com/appengine/versions?project=golang-org&serviceId=default&versionssize=50 Troubleshooting --------------- Ensure the Cloud SDK is on your PATH and you have the app-engine-go component installed (gcloud components install app-engine-go) and your components are up-to-date (gcloud components update)