Ошибка 404 nginx openserver

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
nameless_python
Сообщения: 8
Зарегистрирован: 2019.12.13, 00:18

Ошибка 404 nginx openserver

Сообщение nameless_python »

Привет, форум!

По своей теме нашел просто килотонны материалов в сети, но решения как не было так и нет, похоже что-то я упускаю из вида, надеюсь на Вашу помощь!

Дано: windows 10, openserver 5.3.5 (nginx 1.17 / php 7.3-64)
Установил приложение advanced через composer, все работает как часы. В файле main.php во фронтенде снимаю комментарий со строк с urlManager. Поскольку в настройках в панели openserver у меня стоит имя домена frontend.test с расположением в папке ..\frontend\web, то приложение отрабатывает при наборе http://frontend.test, но стоит перейти по любой из ссылок меню http://frontend.test/site/index(about и тд), получаю 404 Not found nginx. Если оставить строки закомментированными, то любые переходы работают как надо.

nginx:

Код: Выделить всё

# ----------------------------
# General
# ----------------------------

error_log                     '%sprogdir%/userdata/logs/%httpdriver%_error.log' warn; # debug, info, notice, warn, error, crit, alert, emerg
pid                           '%sprogdir%/userdata/temp/nginx.pid';
worker_processes              1;

events {

multi_accept                  on;
use                           poll;
worker_connections            4096;

}

http {

# ----------------------------
# MIME & charset
# ----------------------------

include                       '%sprogdir%/userdata/config/nginx_mime_types.txt';
# charset                     utf-8;
charset_types                 application/atom+xml application/json application/ld+json application/rss+xml application/geo+json application/xml application/rdf+xml application/javascript application/wasm application/manifest+json application/x-web-app-manifest+json text/cache-manifest text/css text/csv text/plain text/x-component text/markdown text/calendar text/vcard text/vtt application/rtf application/pdf application/x-x509-ca-cert application/xhtml+xml application/xslt+xml application/schema+json;
default_type                  application/octet-stream;
%httpcharset%

# ----------------------------
# Logs
# ----------------------------

log_format                    main '$host: $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
log_not_found                 on;
log_subrequest                off;
#access_log                   /path/to/log combined buffer=32k flush=1s;
%logstring%

# ----------------------------
# Zones
# ----------------------------

limit_conn_log_level          warn;
limit_conn_zone               $binary_remote_addr zone=addr:16m;
limit_req_log_level           warn;
limit_req_zone                $binary_remote_addr zone=flood:16m rate=16r/s;

# ----------------------------
# Buffers & hashes
# ----------------------------

client_body_buffer_size       64k;
client_header_buffer_size     2k;
client_max_body_size          50m;
http2_chunk_size              128k;
large_client_header_buffers   8 4k;
output_buffers                8 128k;
postpone_output               1460;
server_names_hash_bucket_size 64;
server_names_hash_max_size    1024;
types_hash_bucket_size        64;
types_hash_max_size           1024;
variables_hash_bucket_size    64;
variables_hash_max_size       1024;

# ----------------------------
# Cache
# ----------------------------

# open_file_cache             max=1000 inactive=60s;
# open_file_cache_errors      on;
# open_file_cache_min_uses    1;
# open_file_cache_valid       60s;
open_log_file_cache           max=10 inactive=1m valid=1m min_uses=1;

# ----------------------------
# TCP & timeouts
# ----------------------------

client_body_in_single_buffer  on;
client_body_timeout           30s;
client_header_timeout         30s;
http2_idle_timeout            2m;
http2_recv_timeout            30s;
ignore_invalid_headers        off;
keepalive_requests            1000;
keepalive_timeout             2m 2m;
max_ranges                    1;
reset_timedout_connection     on;
resolver                      1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 valid=60s ipv6=off;
resolver_timeout              2s;
send_timeout                  30s;
server_name_in_redirect       off;
server_tokens                 off;
tcp_nodelay                   on;
tcp_nopush                    on;

# ----------------------------
# Temp
# ----------------------------

client_body_temp_path         '%sprogdir%/userdata/temp' 1 2;
fastcgi_temp_path             '%sprogdir%/userdata/temp' 1 2;
proxy_temp_path               '%sprogdir%/userdata/temp' 1 2;
scgi_temp_path                '%sprogdir%/userdata/temp' 1 2;
uwsgi_temp_path               '%sprogdir%/userdata/temp' 1 2;

# ----------------------------
# Gzip
# ----------------------------

gzip                          on;
gzip_buffers                  128 4k;
gzip_comp_level               6;
gzip_min_length               1024;
gzip_proxied                  any;
gzip_static                   off;
gzip_types                    application/atom+xml application/json application/ld+json application/rss+xml application/geo+json application/xml application/rdf+xml text/javascript application/wasm application/manifest+json application/x-web-app-manifest+json text/cache-manifest image/svg+xml font/woff font/woff2 application/vnd.ms-fontobject font/ttf font/collection font/otf text/css text/csv text/plain text/x-component text/markdown text/calendar text/vcard text/vtt application/rtf application/pdf application/x-x509-ca-cert application/xhtml+xml application/xslt+xml application/schema+json;
gzip_vary                     on;

# ----------------------------
# SSL
# ----------------------------

ssl_ciphers                   TLS13-AES-128-GCM-SHA256:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ALL+CHACHA20+aECDSA,ALL+AES+aECDSA,ALL+CHACHA20+kECDHE,ALL+AES+kECDHE,ALL+AES+kDHE:!DSS:!kRSA:!aDSS:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP;
ssl_dhparam                   "%sprogdir%/userdata/config/cert_files/dhparam.pem";
ssl_prefer_server_ciphers     on;
ssl_protocols                 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_cache             shared:SSL:16m;
ssl_session_tickets           off;
ssl_session_timeout           1d;
ssl_stapling                  off;
ssl_stapling_verify           off;

# ----------------------------
# PHP FastCGI
# ----------------------------

fastcgi_connect_timeout       1s;
fastcgi_buffering             off;
fastcgi_ignore_client_abort   off;
fastcgi_index                 index.php;
fastcgi_intercept_errors      on;
fastcgi_param                 TEMP   '%sprogdir%/userdata/temp';
fastcgi_param                 TMP    '%sprogdir%/userdata/temp';
fastcgi_param                 TMPDIR '%sprogdir%/userdata/temp';
fastcgi_read_timeout          5m;
fastcgi_send_timeout          5m;
%streams%

# ----------------------------
# Default host config
# ----------------------------

server {

listen                        %ip%:%httpport%;
listen                        %ip%:%httpsport% ssl http2;

root                          '%sprogdir%/modules/system/html/default';
limit_conn                    addr 64;
autoindex                     off;
index                         index.php index.html index.htm;

ssl_certificate               '%sprogdir%/userdata/config/cert_files/server.crt';
ssl_certificate_key           '%sprogdir%/userdata/config/cert_files/server.key';
# ssl_trusted_certificate     '';

# Service configuration (do not edit!)
# ----------------------------
location /openserver/ {
    root      '%sprogdir%/modules/system/html';
    autoindex off;
    index     index.php index.html index.htm;

    %allow%allow all;
    allow 127.0.0.0/8;
    allow ::1/128;
    allow %ips%;
    deny all;

    location ~* ^/openserver/.+\.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv|svgz?|ttf|ttc|otf|eot|woff2?)$ {
        expires 1d;
        access_log off;
    }

    location /openserver/server-status {
        stub_status on;
    }

    location ~ ^/openserver/.*\.php$ {
        try_files      $fastcgi_script_name =404;
        fastcgi_index  index.php;
        fastcgi_pass   backend;
        include        '%sprogdir%/userdata/config/nginx_fastcgi_params.txt';
    }
}
# End service configuration
# ----------------------------

}
# ----------------------------
# End default host config
# ----------------------------

При запуске сервера в отладочном режиме, получаю несколько окон cmd в одном из которых:

c:\openserver\ospanel\modules\http\Nginx_1.17>"c:\openserver\ospanel\modules\http\Nginx_1.17\nginx.exe" -c "c:\openserver\ospanel\modules\http\Nginx_1.17\conf\nginx.conf"
nginx: [alert] could not open error log file: CreateFile() "logs/error.log" failed (3: The system cannot find the path specified)

Ещё в 6, отличающихся циферкой в названии батника от 0 до 5, попытка запустить, как я полагаю (не уверен), cmd.exe -debug0.bat :

c:\openserver\ospanel\modules\php\PHP_7.3-x64>"c:\openserver\ospanel\modules\php\PHP_7.3-x64\php-cgi.exe" -b 127.0.0.1:9000 -c "c:\openserver\ospanel\modules\php\PHP_7.3-x64\php.ini
С перебором портов от 9000 до 9006.
не знаю, связаны ли эти вещи, но дебагер в шторме тоже не работает, пишет что порт занят. Настройку дебагера делал по советам из сети само собой, правил php.ini:

Код: Выделить всё

zend_extension = xdebug
xdebug.default_enable = 1
xdebug.profiler_enable_trigger = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
Общий лог открытый через панель после запуска сервера:

2020-02-05 18:04:51 --------------------------------------------
2020-02-05 18:04:51 Начало процедуры запуска сервера
2020-02-05 18:04:52 Обновление Hosts файла
2020-02-05 18:04:52 Обновление конфигурации MySQL-5.7-x64
2020-02-05 18:04:52 Обновление конфигурации Sendmail
2020-02-05 18:04:52 Обновление конфигурации PHP_7.3-x64
2020-02-05 18:04:52 Обновление конфигурации PHPMyAdmin
2020-02-05 18:04:52 Обновление конфигурации Nginx_1.17
2020-02-05 18:04:52 Запуск MySQL-5.7-x64
2020-02-05 18:04:52 Запуск PHP_7.3-x64
2020-02-05 18:04:52 Запуск Nginx_1.17
2020-02-05 18:04:52 Проверка состояния сервера
2020-02-05 18:04:53 Cервер успешно запущен за 1,5 секунд!

После чего запуск приложения оканчивается 504 Gateway Time-out nginx.

Само собой в режиме обычного запуска все работает как раньше.

Котелок дымит, я в этой области совсем недавно, надеюсь на помощь комьюнити. Заранее извиняюсь за такую кашу из информации, уже не знаю куда лезть.

nameless_python
Сообщения: 8
Зарегистрирован: 2019.12.13, 00:18

Re: Ошибка 404 nginx openserver

Сообщение nameless_python »

Спасибо, разобрался. Кому интересно:

В openserver есть два файла конфигурации nginx - server и host. Проблема была во втором.

Код: Выделить всё

location / {
    # Force index.php routing (if not found)
    # try_files $uri $uri/ /index.php?$query_string;
    try_files $uri $uri/ /index.php$is_args$args;

    # Force index.php routing (all requests)
    # rewrite ^/(.*)$ /index.php?/$1 last;

    location ~ \.php$ {
        try_files      $fastcgi_script_name =404;

        # limit_conn   addr 16;
        # limit_req    zone=flood        burst=32 nodelay;

        # add_header   X-Frame-Options   'SAMEORIGIN' always;
        # add_header   Referrer-Policy   'no-referrer-when-downgrade' always;

        # CSP syntax: <host-source> <scheme-source>(http: https: data: mediastream: blob: filesystem:) 'self' 'unsafe-inline' 'unsafe-eval' 'none'
        # Content-Security-Policy-Report-Only (report-uri https://site.com/csp/)
        # add_header   Content-Security-Policy  "default-src 'self'; connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self'; manifest-src 'self'; media-src 'self'; object-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'self'; frame-ancestors 'self'; upgrade-insecure-requests" always;

        fastcgi_pass   backend;
        include        '%sprogdir%/userdata/config/nginx_fastcgi_params.txt';
    }
}
Я не стал править закомментированную строку, а просто дописал:

try_files $uri $uri/ /index.php$is_args$args;

Это видно в 4 строке. Нашел случайно, сравнил конфиги nginx у openserver и vagrant. Проблема решена.

Ответить