mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-23 14:59:36 +02:00
feat: add OverrideHostMiddleware to set HTTP_HOST from PUBLIC_URL environment variable and update nginx configuration
This commit is contained in:
parent
e19781d7ac
commit
a5aa09ed7b
3 changed files with 31 additions and 11 deletions
|
@ -17,24 +17,24 @@ http {
|
|||
}
|
||||
|
||||
server {
|
||||
listen 80; # NGINX always listens on port 80 inside the container
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
|
||||
location / {
|
||||
proxy_pass http://server:8000; # Explicitly forward to Django service
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://server:8000; # Forward to internal Gunicorn server
|
||||
proxy_set_header Host $host; # Forward Host header from the request
|
||||
proxy_set_header X-Real-IP $remote_addr; # Forward real IP
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Forward original IP
|
||||
proxy_set_header X-Forwarded-Proto $scheme; # Forward the protocol
|
||||
proxy_set_header X-Forwarded-Host $host; # Forward the Host header
|
||||
}
|
||||
|
||||
|
||||
location /static/ {
|
||||
alias /code/staticfiles/; # Serve static files directly
|
||||
alias /code/staticfiles/;
|
||||
}
|
||||
|
||||
location /media/ {
|
||||
alias /code/media/; # Serve media files directly
|
||||
}
|
||||
alias /code/media/;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,3 +21,22 @@ class PrintCookiesMiddleware:
|
|||
print(request.COOKIES)
|
||||
response = self.get_response(request)
|
||||
return response
|
||||
|
||||
# middlewares.py
|
||||
|
||||
import os
|
||||
from django.http import HttpRequest
|
||||
|
||||
class OverrideHostMiddleware:
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request: HttpRequest):
|
||||
# Override the host with the PUBLIC_URL environment variable
|
||||
public_url = os.getenv('PUBLIC_URL', None)
|
||||
if public_url:
|
||||
# Split the public URL to extract the host and port (if available)
|
||||
host = public_url.split("//")[-1].split("/")[0]
|
||||
request.META['HTTP_HOST'] = host # Override the HTTP_HOST header
|
||||
response = self.get_response(request)
|
||||
return response
|
||||
|
|
|
@ -69,6 +69,7 @@ MIDDLEWARE = (
|
|||
'corsheaders.middleware.CorsMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'adventures.middleware.OverrideHostMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue