# Nginx configuration for HTTPS only server_tokens off; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; upstream dev_tomcat_1 { server tomcat; } # HTTP server { listen 80 default_server; listen [::]:80 default_server; gzip on; gzip_static on; gzip_vary on; gzip_http_version 1.1; gzip_min_length 700; gzip_comp_level 6; server_name ${NGINX_HOST}; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /var/www/html/public; index index.php index.html index.htm index.jsp; # Redirect all requests to HTTPS on :443 location / { rewrite ^ https://$host$request_uri? permanent; } ####### Proxies ####### # PHP proxy location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } # Tomcat proxy location ~ \.(do|jspa|obr|jsp) { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tomcat:8082; } ####### Protections and efficiencies ####### # Deny access to files beginning with .ht, such as .htaccess and .htpasswd location ~ /\.ht { deny all; } # Instructs visitor browser to cache files for 1 month location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 1M; } # Deny access to version control system directories. location ~ /\.svn|/\.git { deny all; internal; } # Certbot for HTTPS cert renewal location ^~ /.well-known { allow all; root /data/letsencrypt/; } ####### PHPBB Forum ####### # PHPBB forum location /board { index index.php index.html index.htm; try_files $uri $uri/ @rewriteapp; } # PHPBB installer rewrite location /install/ { try_files $uri $uri/ @rewrite_installapp; } location @rewriteapp { rewrite ^(.*)$ /app.php/$1 last; } # Deny access to internal phpbb files. location ~ /board(config\.php|common\.php|files|images/avatars/upload|includes|(?