{"action":"created","issue":{"url":"https://api.github.com/repos/benoitc/gunicorn/issues/1766","repository_url":"https://api.github.com/repos/benoitc/gunicorn","labels_url":"https://api.github.com/repos/benoitc/gunicorn/issues/1766/labels{/name}","comments_url":"https://api.github.com/repos/benoitc/gunicorn/issues/1766/comments","events_url":"https://api.github.com/repos/benoitc/gunicorn/issues/1766/events","html_url":"https://github.com/benoitc/gunicorn/issues/1766","id":318976750,"node_id":"MDU6SXNzdWUzMTg5NzY3NTA=","number":1766,"title":"detecting scheme=='https' is broken if bound to unix domain socket","user":{"login":"zt-initech","id":6264272,"node_id":"MDQ6VXNlcjYyNjQyNzI=","avatar_url":"https://avatars0.githubusercontent.com/u/6264272?v=4","gravatar_id":"","url":"https://api.github.com/users/zt-initech","html_url":"https://github.com/zt-initech","followers_url":"https://api.github.com/users/zt-initech/followers","following_url":"https://api.github.com/users/zt-initech/following{/other_user}","gists_url":"https://api.github.com/users/zt-initech/gists{/gist_id}","starred_url":"https://api.github.com/users/zt-initech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zt-initech/subscriptions","organizations_url":"https://api.github.com/users/zt-initech/orgs","repos_url":"https://api.github.com/users/zt-initech/repos","events_url":"https://api.github.com/users/zt-initech/events{/privacy}","received_events_url":"https://api.github.com/users/zt-initech/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2018-04-30T17:49:42Z","updated_at":"2018-06-14T21:45:30Z","closed_at":"2018-04-30T18:39:08Z","author_association":"NONE","body":"commit b07532be752668be5eb5dbd0a8303abf5c219c99 \"Forbid contradictory secure scheme headers\" broke \"request.scheme\" and \"wsgi.url_scheme\" when gunicorn is bound to unix domain socket. When gunicorn is bound to tcp socket everything works fine.\r\n\r\nWhen used with nginx in front of gunicorn 19.8, nginx is passing `HTTP_X_FORWARDED_PROTO` == `https`, but in gunicorn/http/message.py in line `remote_addr = self.unreader.sock.getpeername()` in case of unix domain socket `remote_addr` is empty string and then `secure_scheme_headers` is empty dict and scheme ends up being \"http\" although the web server is https-only and passed all the headers.\r\n\r\nI'm using gevent worker with latest everything on python 3.6 but I don't think it matters."},"comment":{"url":"https://api.github.com/repos/benoitc/gunicorn/issues/comments/397448304","html_url":"https://github.com/benoitc/gunicorn/issues/1766#issuecomment-397448304","issue_url":"https://api.github.com/repos/benoitc/gunicorn/issues/1766","id":397448304,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NzQ0ODMwNA==","user":{"login":"tilgovi","id":20818,"node_id":"MDQ6VXNlcjIwODE4","avatar_url":"https://avatars3.githubusercontent.com/u/20818?v=4","gravatar_id":"","url":"https://api.github.com/users/tilgovi","html_url":"https://github.com/tilgovi","followers_url":"https://api.github.com/users/tilgovi/followers","following_url":"https://api.github.com/users/tilgovi/following{/other_user}","gists_url":"https://api.github.com/users/tilgovi/gists{/gist_id}","starred_url":"https://api.github.com/users/tilgovi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tilgovi/subscriptions","organizations_url":"https://api.github.com/users/tilgovi/orgs","repos_url":"https://api.github.com/users/tilgovi/repos","events_url":"https://api.github.com/users/tilgovi/events{/privacy}","received_events_url":"https://api.github.com/users/tilgovi/received_events","type":"User","site_admin":false},"created_at":"2018-06-14T21:45:30Z","updated_at":"2018-06-14T21:45:30Z","author_association":"COLLABORATOR","body":"@danielskun is there another reverse proxy (like a load balancer) in front of nginx setting a different header?"}}
{"actor":{"display_login":"tilgovi"}}