mirror of
https://github.com/cryptpad/cryptpad.git
synced 2026-09-14 11:05:41 +05:00
Merge pull request #2005 from nisbet-hubbard/patch-7
Performance improvements (2/3) to example-advanced.nginx.conf
This commit is contained in:
commit
de2e740d7a
@ -92,15 +92,11 @@ server {
|
||||
# OnlyOffice fonts may be loaded from both domains
|
||||
if ($uri ~ ^/common/onlyoffice/.*/fonts/) { set $allowed_origins "*"; }
|
||||
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header Access-Control-Allow-Origin "${allowed_origins}";
|
||||
add_header Access-Control-Allow-Credentials true;
|
||||
# add_header X-Frame-Options "SAMEORIGIN";
|
||||
|
||||
# Opt out of Google's FLoC Network
|
||||
add_header Permissions-Policy interest-cohort=();
|
||||
|
||||
# Enable SharedArrayBuffer in Firefox (for .xlsx export)
|
||||
add_header Cross-Origin-Resource-Policy cross-origin;
|
||||
add_header Cross-Origin-Embedder-Policy require-corp;
|
||||
@ -185,9 +181,6 @@ server {
|
||||
set $scriptSrc "'self' 'unsafe-eval' 'unsafe-inline' resource: https://${main_domain}";
|
||||
}
|
||||
|
||||
# Finally, set all the rules you composed above.
|
||||
add_header Content-Security-Policy "default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors";
|
||||
|
||||
# Add support for .mjs files used by pdfjs
|
||||
types {
|
||||
application/javascript mjs;
|
||||
@ -211,16 +204,78 @@ server {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection upgrade;
|
||||
|
||||
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
|
||||
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header Access-Control-Allow-Origin "${allowed_origins}";
|
||||
add_header Access-Control-Allow-Credentials true;
|
||||
# add_header X-Frame-Options "SAMEORIGIN";
|
||||
|
||||
# Enable SharedArrayBuffer in Firefox (for .xlsx export)
|
||||
add_header Cross-Origin-Resource-Policy cross-origin always;
|
||||
add_header Cross-Origin-Embedder-Policy require-corp always;
|
||||
add_header Referrer-Policy same-origin;
|
||||
|
||||
# Will not set any header if it is emptystring
|
||||
add_header Cache-Control $cacheControl;
|
||||
|
||||
# Set all the rules you composed above.
|
||||
add_header Content-Security-Policy "default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors" always;
|
||||
}
|
||||
|
||||
location ^~ /customize.dist/ {
|
||||
# This is needed in order to prevent infinite recursion between /customize/ and the root
|
||||
|
||||
if ($uri ~ ^/.*\.html) {
|
||||
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
|
||||
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header Access-Control-Allow-Origin "${allowed_origins}";
|
||||
add_header Access-Control-Allow-Credentials true;
|
||||
# add_header X-Frame-Options "SAMEORIGIN";
|
||||
|
||||
# Enable SharedArrayBuffer in Firefox (for .xlsx export)
|
||||
add_header Cross-Origin-Resource-Policy cross-origin always;
|
||||
add_header Cross-Origin-Embedder-Policy require-corp always;
|
||||
add_header Referrer-Policy same-origin;
|
||||
|
||||
# Will not set any header if it is emptystring
|
||||
add_header Cache-Control $cacheControl;
|
||||
|
||||
# Set all the rules you composed above.
|
||||
add_header Content-Security-Policy "default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors" always;
|
||||
}
|
||||
}
|
||||
# try to load customizeable content via /customize/ and fall back to the default content
|
||||
# located at /customize.dist/
|
||||
# This is what allows you to override behaviour.
|
||||
location ^~ /customize/ {
|
||||
rewrite ^/customize/(.*)$ $1 break;
|
||||
|
||||
if ($uri ~ ^/.*\.html) {
|
||||
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
|
||||
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header Access-Control-Allow-Origin "${allowed_origins}";
|
||||
add_header Access-Control-Allow-Credentials true;
|
||||
# add_header X-Frame-Options "SAMEORIGIN";
|
||||
|
||||
# Enable SharedArrayBuffer in Firefox (for .xlsx export)
|
||||
add_header Cross-Origin-Resource-Policy cross-origin always;
|
||||
add_header Cross-Origin-Embedder-Policy require-corp always;
|
||||
add_header Referrer-Policy same-origin;
|
||||
|
||||
# Will not set any header if it is emptystring
|
||||
add_header Cache-Control $cacheControl;
|
||||
|
||||
# Set all the rules you composed above.
|
||||
add_header Content-Security-Policy "default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors" always;
|
||||
}
|
||||
|
||||
try_files /customize/$uri /customize.dist/$uri;
|
||||
}
|
||||
|
||||
@ -299,8 +354,6 @@ server {
|
||||
# so we hide them
|
||||
proxy_hide_header 'X-Content-Type-Options';
|
||||
proxy_hide_header 'Access-Control-Allow-Origin';
|
||||
proxy_hide_header 'Permissions-Policy';
|
||||
proxy_hide_header 'X-XSS-Protection';
|
||||
proxy_hide_header 'Cross-Origin-Resource-Policy';
|
||||
proxy_hide_header 'Cross-Origin-Embedder-Policy';
|
||||
proxy_pass http://localhost:3000;
|
||||
@ -314,5 +367,30 @@ server {
|
||||
}
|
||||
|
||||
# Finally, serve anything the above exceptions don't govern.
|
||||
try_files /customize/www/$uri /customize/www/$uri/index.html /src/$uri /www/$uri /www/$uri/index.html /src/$uri /customize/$uri;
|
||||
location ~* \.(css|js|mjs|png|svg|gif|ico|woff|woff2|eot|otf|ttf|cur|map)$ {
|
||||
try_files /customize/www/$uri /customize/www/$uri/index.html /src/$uri /www/$uri /www/$uri/index.html /src/$uri /customize/$uri;
|
||||
}
|
||||
|
||||
location / {
|
||||
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
|
||||
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header Access-Control-Allow-Origin "${allowed_origins}";
|
||||
add_header Access-Control-Allow-Credentials true;
|
||||
# add_header X-Frame-Options "SAMEORIGIN";
|
||||
|
||||
# Enable SharedArrayBuffer in Firefox (for .xlsx export)
|
||||
add_header Cross-Origin-Resource-Policy cross-origin always;
|
||||
add_header Cross-Origin-Embedder-Policy require-corp always;
|
||||
add_header Referrer-Policy same-origin;
|
||||
|
||||
# Will not set any header if it is emptystring
|
||||
add_header Cache-Control $cacheControl;
|
||||
|
||||
# Set all the rules you composed above.
|
||||
add_header Content-Security-Policy "default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors" always;
|
||||
|
||||
try_files /customize/www/$uri /customize/www/$uri/index.html /src/$uri /www/$uri /www/$uri/index.html /src/$uri /customize/$uri;
|
||||
}
|
||||
}
|
||||
|
||||
@ -448,38 +448,6 @@ define([
|
||||
});
|
||||
}
|
||||
|
||||
assert(function (cb, msg) {
|
||||
setWarningClass(msg);
|
||||
|
||||
var printMessage = function (value) {
|
||||
msg.appendChild(h('span', [
|
||||
"This instance hasn't opted out of participation in Google's ",
|
||||
code('FLoC'),
|
||||
" targeted advertizing network. ",
|
||||
|
||||
"This can be done by setting a ",
|
||||
code('permissions-policy'),
|
||||
" HTTP header with a value of ",
|
||||
code('"interest-cohort=()"'),
|
||||
" in the configuration of its reverse proxy instead of the current value (",
|
||||
code(value),
|
||||
"). See the provided NGINX configuration file for an example. ",
|
||||
|
||||
h('p', [
|
||||
link("https://www.eff.org/deeplinks/2021/04/am-i-floced-launch", 'Learn more'),
|
||||
]),
|
||||
]));
|
||||
};
|
||||
|
||||
Tools.common_xhr('/', function (xhr) {
|
||||
var header = xhr.getResponseHeader('permissions-policy') || '';
|
||||
var rules = header.split(',');
|
||||
if (rules.includes('interest-cohort=()')) { return void cb(true); }
|
||||
printMessage(JSON.stringify(header));
|
||||
cb(header);
|
||||
});
|
||||
});
|
||||
|
||||
assert(function (cb, msg) {
|
||||
msg.appendChild(h('span', [
|
||||
code('/api/broadcast'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user