Добрый день!
Попробовал обновить сервер до Ubuntu 20.04 и был вынужден откатится на бекап, т.к. один из сайтов перестал нормально работать, а разобраться почему я самостоятельно не смог.
Есть вот такой конфиг:
server {
listen 443 ssl http2;
server_name domain.tld;
root /var/www/domain.tld;
index index.php index.html;
autoindex off;
location / {
try_files $uri $uri/ /$uri.php$is_args$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_index index.php;
try_files $uri =404;
}
location ~ /\.ht {
deny all;
}
location ~* \.(css|js|gif|ico|jpeg|jpg|png|svg|svgz|woff|woff2|ttf|otf|eot|json)$ {
expires max;
}
location /l/ {
rewrite ^/l/([a-zA-Z0-9/]+)$ /l.php?i=$1 last;
}
location /t/ {
rewrite ^/t/([a-zA-Z0-9/]+)$ /t.php?i=$1 last;
}
location /w/ {
rewrite ^/w/([a-zA-Z0-9/]+)$ /w.php?i=$1 last;
}
location /confirm/ {
rewrite ^/confirm/(.*)$ /confirm.php?i=$1 last;
}
location /unsubscribe/ {
rewrite ^/unsubscribe/(.*)$ /unsubscribe.php?i=$1 last;
}
location /subscribe/ {
rewrite ^/subscribe/(.*)$ /subscribe.php?i=$1 last;
}
ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Проблема в том, что после обновления nginx уходит в таймаут.
Если сделать вот так:
location / {
try_files $uri /$uri.php$is_args$args;
}
То начинает открывать страницы, но в таком варианте мой сайт перестает работать как ожидается. :)
Изначально движок предполагает, что будет крутится на Apache. Может быть я что-то неправильно сделал переводя правила для nginx? Вот исходный .htaccess:
Options +FollowSymLinks
Options -Multiviews
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9-]+)$ $1.php [L]
# Link tracker
RewriteRule ^l/([a-zA-Z0-9/]+)$ l.php?i=$1 [L]
# Open tracker
RewriteRule ^t/([a-zA-Z0-9/]+)$ t.php?i=$1 [L]
# Web version
RewriteRule ^w/([a-zA-Z0-9/]+)$ w.php?i=$1 [L]
# unsubscribe
RewriteRule ^unsubscribe/(.*)$ unsubscribe.php?i=$1 [L]
# subscribe
RewriteRule ^subscribe/(.*)$ subscribe.php?i=$1 [L]
P.S.: Также, буду благодарен любым замечаниям о том как сделать конфиг лучше или что почитать о том как сделать правильно.