|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите исправить не простой конфиг NGINX |
|
Помогите исправить не простой конфиг NGINX
|
Старожил Сообщения: 426 |
Конфиг
## HTTP redirect server { listen 80; server_name domain.com; ## logging access_log /var/log/nginx/access_http.log cloudflare buffer=512k flush=1m; error_log /var/log/nginx/error_http.log warn; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; server_name domain.com; root /var/www/html/domain.com; index index.html; client_max_body_size 1024M; client_body_temp_path /var/tmp/nginx-client-body 1; # include nginxconfig.io/letsencrypt.conf; more_set_headers "Server: Apache/2.4.10 (Arch)"; set $nginxerrors /usr/share/nginx/html; include /etc/nginx/errordocs_default.inc; autoindex off; ## SSL ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/domain.com/chain.pem; ssl_protocols TLSv1.2 TLSv1.3; ## openssl dhparam -out /etc/nginx/dhparam.pem 2048 ssl_dhparam /etc/nginx/dhparam.pem; ## security headers add_header X-Frame-Options "DENY" always; add_header X-Robots-Tag "noindex, nofollow" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Cross-Origin-Embedder-Policy "require-corp" always; add_header Cross-Origin-Opener-Policy "same-origin" always; add_header Cross-Origin-Resource-Policy cross-origin always; # add_header Cross-Origin-Resource-Policy "same-origin" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=(), fullscreen=(self)" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self'; style-src 'self'; object-src 'none'; frame-ancestors 'none'; base-uri 'self'; form-action 'self';" always; # . files # location ~ /\.(?!well-known) { # deny all; # } # logging access_log /var/log/nginx/access_https.log cloudflare buffer=512k flush=1m; error_log /var/log/nginx/error_https.log warn; ## Reverse proxy с try_files location / { try_files $uri $uri/ =404; add_header X-Frame-Options "DENY" always; add_header X-Robots-Tag "noindex, nofollow" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Cross-Origin-Embedder-Policy "require-corp" always; add_header Cross-Origin-Opener-Policy "same-origin" always; add_header Cross-Origin-Resource-Policy cross-origin always; # add_header Cross-Origin-Resource-Policy "same-origin" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=(), fullscreen=(self)" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self'; style-src 'self'; object-src 'none'; frame-ancestors 'none'; base-uri 'self'; form-action 'self';" always; fastcgi_param REQUEST_URI $request_uri; proxy_set_header Host $host; add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; add_header Expires "0"; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; ## Proxy SSL proxy_ssl_server_name on; ## Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Forwarded $proxy_add_forwarded; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; ## Proxy timeouts proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; ## include nginxconfig.io/proxy.conf; } ## Обработка 404 для миниатюр (если файла нет, отдаём заглушку) location ~ ^/thumb_ { root /var/www/html/domain.com/img/i/; try_files $uri /res/imgs/errors/404_thumb.png; } ## Обработка 404 для изображений (если файла нет, отдаём заглушку) location ~ ^/[^/]+\.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico)$ { root /var/www/html/domain.com/img/i; try_files $uri /res/imgs/errors/404_fallback.png; } ## Путь к заглушкам 404 location = /res/imgs/errors/404_fallback.png { root /var/www/html/domain.com; } location = /res/imgs/errors/404_thumb.png { root /var/www/html/domain.com; } location = /res/imgs/favicon.ico { root /var/www/html/domain.com; log_not_found off; access_log off; return 204; } location ~ ^/(?!index\.html)[^/]+$ { root /var/www/html/domain.com/file/f; } ## Файлы, не относящиеся к изображениям (редирект из /file/f/) location ~ ^/file/f(/[^/]+)$ { return 301 $1; } ## Основные файлы изображений (редирект, если путь не содержит img/i/) location ~ ^/img/i(/[^/]+\.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico))$ { return 301 https://$host$1; } ## Обработка PHP location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_ADMIN_VALUE "error_log=/var/log/php/errors-domain.com.log"; ## fastcgi_param HTTP_AUTHORIZATION $http_authorization; include fastcgi_params; } location ^~ /res/imgs/ { root /var/www/html/domain.com; log_not_found off; } location ^~ /res/css/ { root /var/www/html/domain.com; log_not_found off; } location ~* \.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico)$ { root /var/www/html/domain.com/img/i; try_files $uri =404; add_header Access-Control-Allow-Origin "*" always; add_header Access-Control-Allow-Methods "GET, OPTIONS" always; add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range" always; add_header Access-Control-Expose-Headers "Content-Length,Content-Range" always; ## Разрешить загрузку изображений с других сайтов add_header Cross-Origin-Resource-Policy "cross-origin" always; } location = /res/imgs/php_out_error.png { log_not_found off; } location = /res/imgs/errors/favicon_error.png { log_not_found off; } location = /robots.txt { log_not_found off; } # include nginxconfig.io/general.conf; } Условия: Нужно чтобы все файлы отсюда /var/www/html/domain.com/file/f/ Все изображения отсюда /var/www/html/domain.com/img/i/ и отсюда /var/www/html/domain.com/img/i/fd/ редиректились в корень домена. В этих каталогах всегда только изображения. Так же из этих каталогов они должны быть доступны по прямым ссылкам от корня. Например domain.com/Diya.png, которое находится в /var/www/html/domain.com/img/i/fd/ Ещё в /var/www/html/domain.com/img/i/ есть файлы миниатюр, которые всегда начинаются с thumb_[рандомные 16 знаков.[расширение]. На них есть редиректы для заглушек, если файлы не существуют. Сейчас файлы /var/www/html/domain.com/file/f/ и изображения с миниатюрами отсюда /var/www/html/domain.com/img/i/ редиректятся правильно и заглушки от миниатюр тоже, а отсюда /var/www/html/domain.com/img/i/fd по запросу пример: domain.com/img/i/fd/Gemini.png выдают страницу ошибки 404, отсюда domain.com/Gemini.png заглушку 404 (404_fallback.png). Помогите найти ошибку. |
|
Отправлено: 20:55, 25-02-2025 |
Deadooshka Сообщения: 2522
|
Профиль | Отправить PM | Цитировать Цитата Mancoffee:
|
|
Отправлено: 10:55, 05-03-2025 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Не могу исправить запись в реестре. Помогите пожалуйста. | G1Q | Microsoft Windows 10 | 2 | 29-07-2019 00:57 | |
2010 - [решено] Не могу удалить или исправить MS Office 2010! Помогите! | Птушвиче | Microsoft Office (Word, Excel, Outlook и т.д.) | 12 | 19-08-2015 20:08 | |
BSOD - не знаю как его исправить. Помогите пожалуйста! | Ins1t | Хочу все знать | 2 | 10-12-2010 12:51 | |
Gentoo - люди помогите с nginx в Gentoo | viktor1969 | Общий по Linux | 9 | 10-08-2009 15:44 |
|