Last active
November 27, 2022 19:01
-
-
Save iocron/86a4f10c394fa656c13c15ad7977522a to your computer and use it in GitHub Desktop.
TYPO3 Nginx Config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # TYPO3 Nginx Config | |
| # Add to your plesk domain nginx directives or edit your nginx sites conf directly (e.g.: /etc/nginx/sites-available/example.com) | |
| # (please check out t3planet https://t3planet.com/blog/typo3-nginx/#c14024 for more informations) | |
| # Compressing resource files will save bandwidth and so improve loading speed especially for users | |
| # with slower internet connections. TYPO3 can compress the .js and .css files for you. | |
| # *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend | |
| # *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties | |
| # config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files. | |
| location ~ \.js\.gzip$ { | |
| add_header Content-Encoding gzip; | |
| gzip off; | |
| types { text/javascript gzip; } | |
| } | |
| location ~ \.css\.gzip$ { | |
| add_header Content-Encoding gzip; | |
| gzip off; | |
| types { text/css gzip; } | |
| } | |
| # TYPO3 - Rule for versioned static files, configured through: | |
| # - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename'] | |
| # - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename'] | |
| if (!-e $request_filename) { | |
| rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last; | |
| } | |
| # TYPO3 - Block access to composer files | |
| location ~* composer\.(?:json|lock) { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to flexform files | |
| location ~* flexform[^.]*\.xml { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to language files | |
| location ~* locallang[^.]*\.(?:xml|xlf)$ { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to static typoscript files | |
| location ~* ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to miscellaneous protected files | |
| location ~* /.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$ { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to recycler and temporary directories | |
| location ~ _(?:recycler|temp)_/ { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to configuration files stored in fileadmin | |
| location ~ fileadmin/(?:templates)/.*\.(?:txt|ts|typoscript)$ { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to libraries, source and temporary compiled data | |
| location ~ ^(?:vendor|typo3_src|typo3temp/var) { | |
| deny all; | |
| } | |
| # TYPO3 - Block access to protected extension directories | |
| location ~ (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ { | |
| deny all; | |
| } | |
| location / { | |
| try_files $uri $uri/ /index.php$is_args$args; | |
| } | |
| # TYPO3 Backend URLs | |
| location = /typo3 { | |
| rewrite ^ /typo3/; | |
| } | |
| location /typo3/ { | |
| try_files $uri /typo3/index.php$is_args$args; | |
| } | |
| location ~ [^/]\.php(/|$) { | |
| fastcgi_split_path_info ^(.+?\.php)(/.*)$; | |
| if (!-f $document_root$fastcgi_script_name) { | |
| return 404; | |
| } | |
| fastcgi_buffer_size 32k; | |
| fastcgi_buffers 8 16k; | |
| fastcgi_connect_timeout 240s; | |
| fastcgi_read_timeout 240s; | |
| fastcgi_send_timeout 240s; | |
| fastcgi_pass typo3:9000; | |
| fastcgi_index index.php; | |
| include fastcgi.conf; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment