41 lines
1.7 KiB
Nginx Configuration File
41 lines
1.7 KiB
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name localhost;
|
|
root /static-files;
|
|
|
|
location / {
|
|
# Handle preflight requests first
|
|
if ($request_method = 'OPTIONS') {
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
|
|
add_header Access-Control-Allow-Headers "Origin, Content-Type, Accept, Authorization" always;
|
|
add_header Access-Control-Max-Age 3600 always;
|
|
return 204;
|
|
}
|
|
|
|
# Serve static files
|
|
try_files $uri $uri/ =404;
|
|
|
|
# Add CORS headers for actual requests
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
|
|
add_header Access-Control-Allow-Headers "Origin, Content-Type, Accept, Authorization" always;
|
|
|
|
# Aggressive caching - 1 year
|
|
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
|
add_header Expires "Thu, 31 Dec 2037 23:55:55 GMT" always;
|
|
|
|
# Set proper content type for markdown files
|
|
location ~* \.md$ {
|
|
add_header Content-Type "text/markdown; charset=utf-8";
|
|
# Aggressive caching for markdown too
|
|
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
|
add_header Expires "Thu, 31 Dec 2037 23:55:55 GMT" always;
|
|
}
|
|
|
|
# Enable gzip compression for better performance
|
|
gzip on;
|
|
gzip_types text/plain text/css text/markdown application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
|
}
|
|
}
|