|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите исправить не простой конфиг NGINX |
|
|
Помогите исправить не простой конфиг NGINX
|
|
Старожил Сообщения: 431 |
Конфиг
## 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 Сообщения: 2565
|
Профиль | Отправить 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 | |
|