Как обслуживать два laravel проекта на nginx сервере с IP-адресом? - PullRequest
0 голосов
/ 27 апреля 2020

Я установил laravel проект на сервере Ubuntu с nginx, теперь мне нужно развернуть второй проект на том же сервере, если у меня нет имени домена, но есть IP-адрес, как я должен определить имя_сервера? для моего второго проекта? Я попытался с XX.XX.XX.XX / mysecondproject , но у меня произошла ошибка при перезагрузке nginx. Я очень ценю, если вы можете помочь мне с этим вопросом. Вот мой nginx файл.

server {
listen 80;
listen [::]:80;

root /var/www/mysecondproject/public;

index index.php index.html index.htm index.nginx-debian.html;

server_name XX.XX.XX.XX/mysecondproject;

location / {
        try_files $uri $uri/ /index.php?$query_string;
}

error_page 404 /index.php;

location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
}

}

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

этот подход работал для меня. Таким образом, у меня first_project, работающий с IP-адресом (XX.XX.XX.XX), и второе приложение, работающее с XX.XX.XX.XX / my_second_project. Я использовал только файл / etc / nginx / sites-available / default для настройки моего сервера. Я надеюсь, что это поможет кому-то в будущем.

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/my_first_project/public;

  index index.php index.html index.htm index.nginx-debian.html;

  server_name XX.XX.XX.XX //my IP Address;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location /my_second_project {
    alias /var/www/my_second_project/public;
    try_files $uri $uri/ @my_second_project;

    location ~ \.php$ {
      fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $request_filename;
      include fastcgi_params;
    }
  }

  location @my_second_project {
    rewrite /my_second_project/(.*)$ /my_second_project/index.php?/$1 last;
  }

  error_page 404 /index.php;

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    include fastcgi_params;
  } 
}
0 голосов
/ 27 апреля 2020

Если у вас есть один IP-адрес для экземпляра, например 10.0.1.20, и вы хотите обслуживать оба проекта по одному и тому же IP-адресу, вы можете попробовать следующие конфигурации.

Разделен портом

Ваш экземпляр находится на IP 10.0.1.20. Порт 80 - это ваше приложение 1, а порт 8080 - это ваше приложение 2.

#App1
server {
   server_name 10.0.1.20;
   listen 80;

   .....

}
#App2
server {
   server_name 10.0.1.20;
   listen 8080;

   .....

}

Если вы хотите разделить свои приложения по местоположению (/ app1, / ​​app2), а не по порту.

Отдельно по местоположению

#AppServer 1
server {
   listen 8081;
   ......
}

#AppServer 2
server {
   listen 8080;
   ......
}


#ProxyServer
server {
   listen 80;
   server_name 10.0.1.20;

   location /app1 {
       proxy_pass http://localhost:8080/;
       proxy_set_header Host $host;
       ......

   }
   location /app2 {
       proxy_pass http://localhost:8081/;
       proxy_set_header Host $host;
       ....
   }
}

...