mastodon.conf 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. ##
  2. # You should look at the following URL's in order to grasp a solid understanding
  3. # of Nginx configuration files in order to fully unleash the power of Nginx.
  4. # http://wiki.nginx.org/Pitfalls
  5. # http://wiki.nginx.org/QuickStart
  6. # http://wiki.nginx.org/Configuration
  7. #
  8. # Generally, you will want to move this file somewhere, and start with a clean
  9. # file but keep this around for reference. Or just disable in sites-enabled.
  10. #
  11. # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
  12. ##
  13. # Default server configuration
  14. #
  15. upstream mastodon {
  16. server mastodon-service-dockerbunker:3000;
  17. }
  18. upstream mastodon-streaming {
  19. server mastodon-streaming-dockerbunker:4000;
  20. }
  21. server {
  22. listen 80;
  23. server_name ${SERVICE_DOMAIN};
  24. return 301 https://$host$request_uri;
  25. add_header X-Content-Type-Options "nosniff" always;
  26. add_header X-XSS-Protection "1; mode=block" always;
  27. add_header X-Frame-Options "DENY" always;
  28. add_header Referrer-Policy "strict-origin" always;
  29. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
  30. server_tokens off;
  31. }
  32. server {
  33. listen 443 ssl;
  34. server_name ${SERVICE_DOMAIN};
  35. ssl_certificate /etc/nginx/ssl/${SERVICE_DOMAIN}/cert.pem;
  36. ssl_certificate_key /etc/nginx/ssl/${SERVICE_DOMAIN}/key.pem;
  37. include /etc/nginx/includes/ssl.conf;
  38. add_header X-Content-Type-Options "nosniff" always;
  39. add_header X-XSS-Protection "1; mode=block" always;
  40. add_header X-Frame-Options "DENY" always;
  41. add_header Referrer-Policy "strict-origin" always;
  42. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
  43. server_tokens off;
  44. include /etc/nginx/includes/gzip.conf;
  45. location / {
  46. proxy_pass http://mastodon/;
  47. proxy_set_header Host $http_host; # required for docker client's sake
  48. proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP
  49. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  50. proxy_set_header X-Forwarded-Proto $scheme;
  51. proxy_read_timeout 900;
  52. }
  53. location /api/v1/streaming {
  54. proxy_set_header Host $host;
  55. proxy_set_header X-Real-IP $remote_addr;
  56. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  57. proxy_set_header X-Forwarded-Proto https;
  58. proxy_set_header Proxy "";
  59. proxy_pass http://mastodon-streaming/;
  60. proxy_buffering off;
  61. proxy_redirect off;
  62. proxy_http_version 1.1;
  63. # proxy_set_header Upgrade $http_upgrade;
  64. # proxy_set_header Connection $connection_upgrade;
  65. tcp_nodelay on;
  66. }
  67. location ~ /.well-known/acme-challenge {
  68. allow all;
  69. root /var/www/html;
  70. }
  71. }