У меня Ubuntu установлен на VPS. У меня нет доменного имени, поэтому весь контент доступен через https://IP: порт. Я пытался настроить nginx, чтобы запустить несколько веб-приложений, доступных через IP / имя.
Вот мой конфиг
server {
listen 443 ssl;
error_log /var/log/nginx/nginx_error.log;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
set $root_path '/var/www/html';
root $root_path;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;
server_name localhost;
# handle static files within project.. break at end to avoid recursive redirect
location ~ app3/((.*)\.(?:css|cur|js|jpg|jpeg|gif|htc|ico|png|html|xml))$ {
rewrite app3/((.*)\.(?:css|cur|js|jpg|jpeg|gif|htc|ico|png|html|xml))$ /app3/$1 break;
}
location /app3 {
rewrite ^/app3(.*)?$ /app3/pathto/public/index.php?$1 last;
}
location / {
try_files $uri $uri/ =404;
}
location /app1 {
try_files $uri $uri/ /index.php;
}
location /app2 {
try_files $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#try_files $uri $uri/ =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_nam
}
}
Это хорошо работает для app1 и app2. Приложение 3 (приложение Laravel) не может работать правильно, поскольку оно использует абсолютные URL-адреса вместо относительных путей. Поэтому я получаю 404 запроса на /api .. вместо /app3 /pathto /public /.. (Я попробовал форк app3 с относительными путями, и все работает хорошо, за исключением некоторых изображений и шрифтов не отображаются)
Как я могу настроить nginx, чтобы app3 имел собственную корневую папку? Директива root или alias в папке app3 не будет работать должным образом.
Спасибо !