RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

~~socialite Display:icon facebook twitter~~

ALARM!

Добавить новую страницу

You are not allowed to add pages

Реклама

linux:nginx:nginx_example

nginx: примеры конфигов

Примеры для Wordpress, Joomla, Drupal

Wordpress

Click to display ⇲

Click to hide ⇱

       # конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один"
       #
       # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам
       server {
                listen 192.168.0.1:80;               # IP-адрес сервера
                proxy_buffer_size         8k;       # параметр изменяется в панели управления
                client_max_body_size   16m;    # параметр изменяется в панели управления
                client_body_buffer_size 512k;

                # кэш имён файлов для disable_symlinks
                open_file_cache          max=1000 inactive=20s; 
                open_file_cache_valid    30s;
                open_file_cache_min_uses 2;
                open_file_cache_errors   on;

                # имена сайта
                server_name example.com;
                server_name www.example.com

                # отключение лишних журналов
                access_log  off;
                log_not_found off;

                # корневая папка для статических файлов
                root /home/username/www/site1/public_html;
                index index.html;

                # запрет символьных ссылок на "чужие" файлы
                # если файл находится внутри папки /home/username/www/site1/public_html , 
                # то эту часть не проверять по соображением производительности
                disable_symlinks if_not_owner from=/home/username/www/site1/public_html;
                
                # обработать запрос, не соответствующий уточнениям ниже
                location / {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        try_files $uri @apache;
                }

                # запретить доступ к системным файлам
                location ~ /\. {
                        deny all;
                }

                # запретить доступ к скриптам .php в каталогах, использующихся для заливки файлов
                location ~* /(?:uploads|files)/.*\.php$ {
                        deny all;
                }

                # отдать напрямую favicon.ico
                location = /favicon.ico {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                }
                
                # отдать напрямую robots.txt
                location = /robots.txt {
                        allow all;
                        access_log /home/username/www/site1/logs/nginx-access.log;
                }

                # попытаться отдать файл с одним из расширений напрямую минуя apache
                location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        expires 24h;
                }

                # запретить все прямые обращения к несуществующим файлам .php
                location ~ \.php$ {
                        try_files $uri =404;
                        proxy_pass  http://127.0.0.1:11111;
                }
                
                # передать запрос к apache
                location @apache {
                        proxy_pass  http://127.0.0.1:11111;
                }

        }

Joomla

Click to display ⇲

Click to hide ⇱

       # конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один"
       #
       # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам
       server {
                listen 192.168.0.1:80;               # IP-адрес сервера
                proxy_buffer_size         8k;       # параметр изменяется в панели управления
                client_max_body_size   16m;    # параметр изменяется в панели управления
                client_body_buffer_size 512k;

                # кэш имён файлов для disable_symlinks
                open_file_cache          max=1000 inactive=20s; 
                open_file_cache_valid    30s;
                open_file_cache_min_uses 2;
                open_file_cache_errors   on;

                # имена сайта
                server_name example.com;
                server_name www.example.com

                # отключение лишних журналов
                access_log  off;
                log_not_found off;

                # корневая папка для статических файлов
                root /home/username/www/site1/public_html;
                index index.html;

                # запрет символьных ссылок на "чужие" файлы
                # если файл находится внутри папки /home/username/www/site1/public_html , 
                # то эту часть не проверять по соображением производительности
                disable_symlinks if_not_owner from=/home/username/www/site1/public_html;
                
                # обработать запрос, не соответствующий уточнениям ниже
                location / {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        try_files $uri @apache;
                }

                # запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте
                location ~ /\.svn {
                        deny all;
                }
                location ~ /\.git {
                        deny all;
                }
                location ~ /\.hg {
                        deny all;
                }

                # запретить доступ к файлам .htaccess и .htpasswd
                location ~ /\.ht {
                        deny all;
                }

                # избыточный запрет вызова исполняемых файлов из несоответствующих каталогов
                location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                        return 403;
                }

                # попытаться отдать файл с одним из расширений напрямую минуя apache
                location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                        access_log %%sitedir%%/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        expires 24h;
                }

                # запретить все прямые обращения к несуществующим файлам .php
                location ~ \.php$ {
                        try_files $uri =404;
                        proxy_pass  http://127.0.0.1:11111;
                }
                
                # передать запрос к apache
                location @apache {
                        proxy_pass  http://127.0.0.1:11111;
                }

        }

Drupal

Click to display ⇲

Click to hide ⇱

       # конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один"
       #
       # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам
       server {
                listen 192.168.0.1:80;               # IP-адрес сервера
                proxy_buffer_size         8k;       # параметр изменяется в панели управления
                client_max_body_size   16m;    # параметр изменяется в панели управления
                client_body_buffer_size 512k;

                # кэш имён файлов для disable_symlinks
                open_file_cache          max=1000 inactive=20s; 
                open_file_cache_valid    30s;
                open_file_cache_min_uses 2;
                open_file_cache_errors   on;

                # имена сайта
                server_name example.com;
                server_name www.example.com

                # отключение лишних журналов
                access_log  off;
                log_not_found off;

                # корневая папка для статических файлов
                root /home/username/www/site1/public_html;
                index index.html;

                # запрет символьных ссылок на "чужие" файлы
                # если файл находится внутри папки /home/username/www/site1/public_html , 
                # то эту часть не проверять по соображением производительности
                disable_symlinks if_not_owner from=/home/username/www/site1/public_html;
                
                # обработать запрос, не соответствующий уточнениям ниже
                location / {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        try_files $uri @apache;
                }

                # запретить махинации с php
                location ~ \..*/.*\.php$ {
                        return 403;
                }
                # запретить доступ к резервным копиям извне
                location = /backup {
                        deny all;
                }

                # запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте
                location ~ /\.svn {
                        deny all;
                }
                location ~ /\.git {
                        deny all;
                }
                location ~ /\.hg {
                        deny all;
                }

                # запретить доступ к файлам .htaccess и .htpasswd
                location ~ /\.ht {
                        deny all;
                }

                # отдать напрямую favicon.ico
                location = /favicon.ico {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                }
                
                # отдать напрямую robots.txt
                location = /robots.txt {
                        allow all;
                        access_log /home/username/www/site1/logs/nginx-access.log;
                }

                # попытаться отдать файл с одним из расширений напрямую минуя apache
                location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                        access_log /home/username/www/site1/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        expires 24h;
                }

                # попытаться отдать кэш изображений напрямую
                location ~ ^/sites/.*/files/imagecache/ {
                        try_files $uri @apache;
                }
                
                # попытаться отдать стили напрямую
                location ~ ^/sites/.*/files/styles/ {
                        try_files $uri @apache;
                }

                # запретить все прямые обращения к несуществующим файлам .php
                location ~ \.php$ {
                        try_files $uri =404;
                        proxy_pass  http://127.0.0.1:11111;
                }
                
                # передать запрос к apache
                location @apache {
                        proxy_pass  http://127.0.0.1:11111;
                }

        }

Рецепт конфигурации nginx общего назначения

Click to display ⇲

Click to hide ⇱

       # конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один"
       #
       # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам
       server {
                listen 192.168.0.1:80;               # IP-адрес сервера
                proxy_buffer_size         8k;       # параметр изменяется в панели управления
                client_max_body_size   16m;    # параметр изменяется в панели управления
                client_body_buffer_size 512k;

                # кэш имён файлов для disable_symlinks
                open_file_cache          max=1000 inactive=20s; 
                open_file_cache_valid    30s;
                open_file_cache_min_uses 2;
                open_file_cache_errors   on;

                # имена сайта
                server_name example.com;
                server_name www.example.com

                # отключение лишних журналов
                access_log  off;
                log_not_found off;

                # корневая папка для статических файлов
                root /home/username/www/site1/public_html;
                index index.html;

                # запрет символьных ссылок на "чужие" файлы
                # если файл находится внутри папки /home/username/www/site1/public_html , 
                # то эту часть не проверять по соображением производительности
                disable_symlinks if_not_owner from=/home/username/www/site1/public_html;
                
                # обработать запрос, не соответствующий уточнениям ниже
                location / {
                        proxy_pass  http://127.0.0.1:11111;
                }

                # запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте
                location ~ /\.svn {
                        deny all;
                }
                location ~ /\.git {
                        deny all;
                }
                location ~ /\.hg {
                        deny all;
                }

                # запретить доступ к файлам .htaccess и .htpasswd
                location ~ /\.ht {
                        deny all;
                }

                # попытаться отдать файл с одним из расширений напрямую минуя apache
                location ~* \.(swf|zip|rar|arj|cab|exe|dll|ico|jpg|jpeg|gif|bmp|png|mp3|avi|mov|mpg|mpeg|txt|amr|mmf|wml|wbmp|mid|midi|3gp|js|css|htm|html?)$
                        access_log /home/username/www/site1/logs/nginx-access.log;
                        charset utf-8;
                        source_charset utf-8;
                        try_files $uri @apache;
                }

                # передать запрос к apache
                location @apache {
                        proxy_pass  http://127.0.0.1:11111;
                }

        }
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
linux/nginx/nginx_example.txt · Последнее изменение: 2020/04/03 14:52 (внешнее изменение)