Laravel API на том же IP-адресе с другим портом на nginx

У меня есть виртуальная машина, на которой работает сервер nginx. Сейчас работает только один экземпляр, и мне нужен второй для моего Laravel API. В качестве операционной системы виртуальная машина использует сервер Ubuntu 16.04.

Теперь я создал второй файл в / etc / nginx / sites-available и связан с сайтами с поддержкой. В хостах я также создал для целей тестирования строку 127.0.0.1 example.com. Если я назову это с помощью curl example.com:8000. Верну ли я сайт в терминал. Поскольку я снова и снова обнаруживаю там свое имя папки, я предполагаю, что все правильно.

Теперь я хотел бы сделать это со стороны. Я хочу иметь доступ к своему Laravel API за пределами виртуальной машины с другим портом.

Я думал, что это сработает, если у меня он будет точно так же, как в файле по умолчанию. Итак, я указал в качестве имени сервера _. Это не было решением.

С 192.168.2.110 я все еще получаю страницу WordPress. Но с 192.168.2.110:8000 ни одной страницы не найдено. Наконец, IP также должен служить только для целей REST в Angular. Но чтобы я знал, работает ли это тоже, я должен увидеть домашнюю страницу Laravel в папке Public.

Я следил за этим руководством: https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

# Default server configuration
#
server {
    listen 8000 default_server;
    listen [::]:8000 default_server;


    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/MT_Backend_Iventorysystem/public;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        # try_files $uri $uri/ =404;

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

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
    #
    #   # With php7.0-cgi alone:
    #   fastcgi_pass 127.0.0.1:9000;
    #   # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny all;
    }

    # Following location added to handle WordPress correctly
    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robot.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
1 207
1

Ответы 1

Один из способов:

В приложении / Providers / RouteServiceProvider:

public function map()
{
   switch(request()->getPort())
   {
      case 80:
      case 8080:
      case 443:
          $this->mapWebRoutes();
          break;
     // choose a port that is not used by another server
      case 8975:
          $this->mapApiRoutes();
          break;
    }
}

В ngnix

server {
       listen 8975;
       server_name YOUR_DOMAIN_NAME;
       root '/path/to/your/application/public/;
       ...

Другие вопросы по теме