server { listen [::]:80; server_name src.example.com src-files.example.com; location / { rewrite ^/(.*)$ https://$http_host$request_uri; } # NOTE: This is untested. You might need to set an invalid index and turn on autoindex instead. location /.well-known { root /home/phabricator/phabricator/phabricator/webroot; autoindex off; } } server { listen [::]:443 ssl; ssl_certificate /etc/letsencrypt/live/HOSTNAME.GOES.HERE/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/HOSTNAME.GOES.HERE/privkey.pem; server_name src.example.com src-files.example.com; root /home/phabricator/phabricator/phabricator/webroot; location / { index index.php; rewrite ^/(.*)$ /index.php?__path__=/$1 last; } location /index.php { fastcgi_pass unix:/run/php/php5.6-fpm.sock; fastcgi_index index.php; #required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; #variables to make the $_SERVER populate in PHP fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; # Next line is for Nginx 1.6 and newer fastcgi_param HTTPS $https if_not_empty; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; } }