aboutsummaryrefslogtreecommitdiffstats
path: root/nginx/nginx.conf
diff options
context:
space:
mode:
Diffstat (limited to 'nginx/nginx.conf')
-rw-r--r--nginx/nginx.conf112
1 files changed, 13 insertions, 99 deletions
diff --git a/nginx/nginx.conf b/nginx/nginx.conf
index 1970845..822dd29 100644
--- a/nginx/nginx.conf
+++ b/nginx/nginx.conf
@@ -1,103 +1,17 @@
-user nginx;
-worker_processes auto;
-error_log /var/log/nginx/error.log notice;
-pid /var/run/nginx.pid;
+server {
+ listen 80;
+ listen [::]:80;
+ server_name _;
-events {
- worker_connections 1024;
-}
+ root /usr/share/nginx/html;
+ index index.html index.htm;
-http {
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
-
- access_log /var/log/nginx/access.log main;
-
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- types_hash_max_size 2048;
-
- # Security headers
- add_header X-Frame-Options "SAMEORIGIN" always;
- add_header X-Content-Type-Options "nosniff" always;
- add_header X-XSS-Protection "1; mode=block" always;
- add_header Referrer-Policy "strict-origin-when-cross-origin" always;
-
- # Gzip compression
- gzip on;
- gzip_vary on;
- gzip_min_length 1024;
- gzip_proxied any;
- gzip_comp_level 6;
- gzip_types
- application/atom+xml
- application/geo+json
- application/javascript
- application/x-javascript
- application/json
- application/ld+json
- application/manifest+json
- application/rdf+xml
- application/rss+xml
- application/xhtml+xml
- application/xml
- font/eot
- font/otf
- font/ttf
- image/svg+xml
- text/css
- text/javascript
- text/plain
- text/xml;
-
- server {
- listen 8080;
- server_name localhost;
- root /usr/share/nginx/html;
- index index.html;
-
- # Security configurations
- server_tokens off;
-
- # Cache static assets
- location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
- expires 1y;
- add_header Cache-Control "public, immutable";
- add_header X-Frame-Options "SAMEORIGIN" always;
- add_header X-Content-Type-Options "nosniff" always;
- }
-
- # Handle HTML files with shorter cache
- location ~* \.html$ {
- expires 1h;
- add_header Cache-Control "public, no-transform";
- add_header X-Frame-Options "SAMEORIGIN" always;
- add_header X-Content-Type-Options "nosniff" always;
- }
-
- # Handle root and fallback to index.html (SPA support)
- location / {
- try_files $uri $uri/ /index.html;
- add_header X-Frame-Options "SAMEORIGIN" always;
- add_header X-Content-Type-Options "nosniff" always;
- }
-
- # Health check endpoint
- location /health {
- access_log off;
- return 200 "healthy\n";
- add_header Content-Type text/plain;
- }
+ location / {
+ try_files $uri $uri/ /index.html;
+ }
- # Block access to hidden files
- location ~ /\. {
- deny all;
- }
+ error_page 404 /404.html;
+ location = /404.html {
+ internal;
}
-}
+} \ No newline at end of file