Nginx несколько проектов Laravel - PullRequest
0 голосов
/ 10 ноября 2019

У меня возникают проблемы при попытке настроить второй набор мест для моей установки Nginx. В настоящее время у меня есть 1 рабочий маршрут, который использует обратный прокси-сервер к серверу NodeJS Express.

Я пытаюсь настроить второе расположение для обслуживания проекта laravel, вот мой файл конфигурации Nginx, я знаю, что есть некоторые ошибки, но после поиска в Google я не могу найти ответ самостоятельно.

Спасибо

server {
        listen 443 http2 ssl;
        listen [::]:443 http2 ssl;
        server_name some.server.com

        ssl on;
        ssl_certificate /etc/letsencrypt/live/some.server.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/some.server.com/privkey.pem;

        # This doesnt work, its a laravel project
        # Theres something wrong with my try_files
        location /project2 {
                root /home/ubuntu/project2/public/;
                try_files $uri $uri/ /index.php?$query_string;
        }

        # This works, I am reverse proxying to NodeJS Application
        location / {
                proxy_pass http://localhost:3001;
                proxy_set_header Host $http_host;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}

1 Ответ

1 голос
/ 11 ноября 2019

Вам нужно добавить что-то в /project2, которое сообщает nginx, как обрабатывать php-файлы. блок, который будет знать, что делать с

Я взял следующее из здесь . Я обновил регулярное выражение вашего местоположения, хотя я не проверял, поэтому вам может потребоваться исправить его (все, что касается nginx, - это метод проб и ошибок, пока он не заработает):

location ~* /project2/(.*\.php)$ {
    root /home/ubuntu/project2/public/;
    try_files $1 $1/ $1/index.php?$query_string;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Вы обслуживаете с /home/ubuntu/project2/public/,но ваши php-адреса заканчиваются на project2, поэтому вам нужно сделать немного магии регулярных выражений, чтобы извлечь правильный URL-адрес.

Конечно, если вы можете упростить вашу структуру каталогов, вы можете использоватьболее простое регулярное выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...