Files
BookLore/nginx.conf
2025-10-26 22:54:28 -06:00

59 lines
2.0 KiB
Nginx Configuration File

# the events block is required
events {}
http {
# include the default mime.types to map file extensions to MIME types
include /etc/nginx/mime.types;
# Set max request body size to 100MB (adjust as needed)
client_max_body_size 1000M;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
large_client_header_buffers 8 32k;
server {
listen ${BOOKLORE_PORT};
listen [::]:${BOOKLORE_PORT};
# Set the root directory for the server (Angular app)
root /usr/share/nginx/html;
# Set the default index file for the server
index index.html;
# Serve Angular UI
location / {
try_files $uri $uri/ /index.html; # Fallback to index.html for Angular routing
location ~* \.mjs$ {
# target only *.mjs files
# now we can safely override types since we are only
# targeting a single file extension.
types {
text/javascript mjs;
}
}
}
# Proxy API requests that start with /api/ to the backend
location /api/ {
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Host $host;
}
# Proxy WebSocket requests (ws://) to the backend
location /ws {
proxy_pass http://localhost:8080/ws; # Backend WebSocket endpoint
proxy_http_version 1.1; # Ensure HTTP 1.1 is used for WebSocket connection
proxy_set_header Upgrade $http_upgrade; # Pass the upgrade header
proxy_set_header Connection 'upgrade'; # Pass the connection header
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;
}
}
}