mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-22 22:45:27 -05:00
HTTP 400 in fresh nginx reverse proxy deployment #12462
Closed
opened 2025-11-02 10:10:32 -06:00 by GiteaMirror
·
8 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
issue/needs-feedback
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#12462
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @bavarialogy on GitHub (Feb 9, 2024).
Description
Hello there,
I'm trying to finish my second deployment of Gitea 1.21.4 using docker-compose in combination with nginx-proxy by nginxproxy. This is my compose file for gitea:
This is the corresponding nginxproxy/nginx-proxy docker-compose.yml file (for reference):
The reverse proxy config that is generated by nginx-proxy looks like this:
I have tried turning logging up to "trace" in the app.ini file, but got no information. I even strace'd the nginx-worker and got this:
I've spent a lot of time trying to debug the situation but I'm at the end. Does anyone have an idea what could be the problem?
Gitea Version
1.21.4
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
Linux/Docker
How are you running Gitea?
Docker (w/ compose)
Database
PostgreSQL
@davegermiquet commented on GitHub (Feb 11, 2024):
Hi,
I'm new here and I'd love to try to help. This issue might be a configuration issue, not a bug in gitea.
Do you have logs?
I'd first try running docker logs on the individual components.
But even before that I'd try to connect through it without letsencrypt.
So First thing:
Does gitea boot up properly on port 3000?
Can you reverse proxy on regular http port without lets encrypt?
Whats gitea logs showing if its not starting up?
User the docker compose logs command to see whats happening in the individual instances.
@bavarialogy commented on GitHub (Feb 12, 2024):
Hi,
thanks for your reply! I appreciate your will to help me out. The bad thing is that there isn't any relevant information on request handling logged by the gitea app server (not even with log set to "trace"). The gitea log does not show anything new once I follow it and reproduce the HTTP 400 error. That's why I created the strace of nginx, to see if the 400 comes from the application server (which it apparently does).
Direct access to gitea on port 3000 works through HTTP. Even curl'ing the application server from the reverse proxy container using the address from the reverse proxy config works, I get the gitea setup page on the fresh install and, once that has been completed using direct access (via tcp/3000), the login page. All of that, as mentioned, from inside the nginx container. From what I interpret out of the strace output (which is from the nginx worker process), nginx connects to the application server and gets back the 400 (which it then forwards to the user)..
I do agree that my issue is most likely a configuration issue, will remain thankful for any hints.
@davegermiquet commented on GitHub (Feb 12, 2024):
Hi,
When I get home I'll do a ngrep/tcpdump for localhost to see and compare traffic. What headers are being sent over to the HTTP to port 3000. You'll need to filter only the nginx-proxy data and see what traffic is being sent over by nginx.
I'd suggest for you to do that as well, see whats being sent for that bad request to happen over tcpdump/ngrep i'll give you the exact commands later if you don't know how to do it in the evening.
@davegermiquet commented on GitHub (Feb 13, 2024):
In order to sniff the traffic you need to do the following:
this is base on configuration you sent:
Install the ngrep package on gitea:
(you'll get an ip)
example:
64 bytes from 192.168.129.4: seq=0 ttl=64 time=0.069 ms
look at the interface that the ip is on
(if its eth0) probably is
for the command below you might want to add 404 or 400 as well to see the error condition.
Try OK first.
you'll see traffic like this:
You can then see what headers are being passed if any are missing and what actual gitea is returning back.
There are other ways to get the ip and interface this is just an example.
@bavarialogy commented on GitHub (Feb 16, 2024):
Hi there,
i'm pretty impressed by the level of detail you're providing to help me. THANK YOU!
This is what I got going with the steps:
I'm not experienced enough to tell if there are headers missing, I can only see that some seem to be double. Could this be a problem?
@davegermiquet commented on GitHub (Feb 16, 2024):
Can you try this ngrep instead of the previous? To see if we can see what the bad request is as well:
Let me see those headers .I'll look at them.
Maybe gitea isn't listening to that port. Can you try this:
change in your nginx config to point to the internal name instead of the ip?:
Example in my config i've got this:
server:
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
......
Where my docker compose looks like this:
I've seen this issue at work with my colleague, and when i changed the dns name it was locating to (LOCALHOST as he wasn't using docker it fixed the issue)
@davegermiquet commented on GitHub (Feb 16, 2024):
You mentioned you see no logs, have you tried this:
docker compose logs server
this is where the logs come out of.
You need to be in the folder where docker-compose.yml is.
Another example you can do is before trying to log in do:
docker compose logs server -f
I think this line is the problem:
proxy_pass http://git.domain.tld;
Is that going to the Public IP?
id modify it and change it to the local ip. I guess i said it above change it to the name of the service in docker-compose.yml
@GiteaBot commented on GitHub (Mar 28, 2024):
We close issues that need feedback from the author if there were no new comments for a month. 🍵