#laravel #nginx #server #nginx-config #nginx-location
#ларавель #nginx #сервер #nginx-конфигурация #nginx-местоположение
Вопрос:
Я столкнулся с проблемой, когда try_files не может распознать статические файлы в моем корневом каталоге. Я уже проверил свой корень, то есть /var/www/public
все файлы CSS и js находятся в этом каталоге и не пусты. Однако nginx не распознает и не обслуживает мои файлы. Он не распознает файлы, поэтому передал запрос в блок .php
расположения для обработки uri, чего я не хочу. Я хочу, чтобы он напрямую обслуживал статические файлы. Поэтому я хотел бы проверить, смотрит ли nginx в тот же корневой каталог, что и я. Есть ли какой-нибудь способ проверить, что находится в каталоге, который nginx проверяет на наличие файлов? или как-нибудь я могу понять, в чем проблема? Заранее благодарю. Вот мой nginx.conf:
server { server_name example.com; listen 80 ; access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } server { server_name example.com; listen 443 ssl http2; access_log /var/log/nginx/access.log vhost; error_log /var/log/nginx/error_log; include /etc/nginx/mime.types; root /var/www/public; ssl_certificate {ssl_certificate location}; ssl_certificate_key {ssl_certificate_key location}; add_header Strict-Transport-Security "max-age=31536000" always; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.php; charset utf-8; location / { root /var/www/public; try_files $uri $uri/ /index.php?$is_args$args; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ .php$ { fastcgi_split_path_info ^(. .php)(/. )$; fastcgi_pass {my_container_name}:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } location ~ /.(?!well-known).* { deny all; }
Пожалуйста, обратите внимание, что я изменил имя сервера, информацию о ssl_certificate и имя контейнера docker в целях конфиденциальности.
Комментарии:
1. Проверьте журнал доступа, чтобы убедиться в правильности URI. Проверьте разрешения файлов, чтобы убедиться, что процесс Nginx может их прочитать.
Ответ №1:
Я отвечаю на свой собственный вопрос. Проблема заключалась в том, что я не подключил свой том приложения(том, в котором есть весь код и ресурсы) к своему контейнеру nginx. Проблема была решена после того, как я установил том.