@mrFlyer

Как сконфигурировать Nginx в OpenServer для SSR приложения?

Приветствую!

Есть SSR приложение на NuxtJS которое работает сейчас по адресу localhost:3000
Хочу что бы оно было доступно по доменному имени my-domain.dev

Я кинул файл Apache-PHP-7-x64+Nginx-1.12_vhostn.conf в папку /my-domain/public

И дальше ступор ... первый раз имею дело с NodeJS и Nginx =)

1. Домен еще обрабатывает апач, который наверное нужно перенаправить на папку /my-domain/public/api/ в которой будет бэкенд?

2. Как в конфигах прописать прокси my-domain.dev -> localhost:3000 ? Официальная дока NuxtJS не помогает, что бы я не делал сервер после этого не запускается вообще. Или вначале нужно разобраться с апачем?

UPDATE

С прокси вроде разобрался.
В Apache-PHP-7-x64+Nginx-1.12_vhostn.conf заменил
proxy_pass                http://%ips%:%httpbackport%/;

на
proxy_pass http://localhost:3000;

Приложение начало открываться по домену. Но не отображалась статика (картинки и т.д.)
Удалил блок:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|cur|swf)$ {
 root     "%hostdir%";
 expires  7d;
}


И вроде все заработало. Наверное коряво, но для тестирования на локальном сервере надеюсь будет достаточно.

Остался вопрос, как передать все запросы с /my-domain/public/api бэкенду на PHP?

Нужно как то папку api исключить из прокси...

UPDATE2

Добавил блок

location /api{
        proxy_buffer_size         64k;
        proxy_buffering           on;
        proxy_buffers             4 64k;
        proxy_connect_timeout     5s;
        proxy_ignore_client_abort off;
        proxy_intercept_errors    off;
        proxy_pass                http://%ips%:%httpbackport%;
        proxy_pass_header         Server;
        proxy_read_timeout        5m;
        proxy_redirect            off;
        proxy_send_timeout        5m;
        proxy_set_header          Host $host;
        proxy_set_header          X-Forwarded-For $http_x_forwarded_for;
        proxy_set_header          X-Real-IP $remote_addr;
        proxy_set_header          X-Forwarded-Proto $scheme;
}


И собственно через mod_rewrite запрос поймал на /public/index.php, далее прописал уже роут для /api в бэкенде и вперед с песней =)

В общем все оказалось проще чем я думал. Если есть у кого комментарий, буду благодарен!

Дефолтный конфиг OpenServera:
#-----------------------------------------------#
# Конфигурация хоста для сервера Nginx
# Начало блока конфигурации хоста
#-----------------------------------------------#

server {
    listen         %ip%:%httpport%;
    listen         %ip%:%httpsport% ssl;
    server_name    %host% %aliases%;
    
    ssl_certificate               "%sprogdir%/userdata/config/cert_files/server.crt";
    ssl_certificate_key           "%sprogdir%/userdata/config/cert_files/server.key";
    
    #add_header Strict-Transport-Security "max-age=94608000";
    
    #if ($request_method !~* ^(GET|HEAD|POST)$ ){return 403;}
    location ~ /\. {deny all;}

    location / {
        proxy_buffer_size         64k;
        proxy_buffering           on;
        proxy_buffers             4 64k;
        proxy_connect_timeout     5s;
        proxy_ignore_client_abort off;
        proxy_intercept_errors    off;
        proxy_pass                http://%ips%:%httpbackport%/;
        proxy_pass_header         Server;
        proxy_read_timeout        5m;
        proxy_redirect            off;
        proxy_send_timeout        5m;
        proxy_set_header          Host $host;
        proxy_set_header          X-Forwarded-For $http_x_forwarded_for;
        proxy_set_header          X-Real-IP $remote_addr;
        proxy_set_header          X-Forwarded-Proto $scheme;
    }

    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|cur|swf)$ {
        root     "%hostdir%";
        expires  7d;
    }

    location ^~ /apacheicons/ {
        alias    %sprogdir%/modules/http/%httpdriver%/icons/;
    }
    location ^~ /apacheerror/ {
        alias    %sprogdir%/modules/http/%httpdriver%/error/;
    }

    # Подключение веб-инструментов
    #---------------------------------------#
    # <Не изменяйте этот блок конфигурации>
    
    location /openserver/ {
        %allow%allow    all;
        allow    127.0.0.0/8;
        allow    ::1/128;
        allow    %ips%;
        deny     all;

        location /openserver/server-status {
            stub_status on;
        }

        proxy_buffer_size         64k;
        proxy_buffering           on;
        proxy_buffers             4 64k;
        proxy_connect_timeout     5s;
        proxy_ignore_client_abort off;
        proxy_intercept_errors    off;
        proxy_pass                http://%ips%:%httpbackport%/openserver/;
        proxy_pass_header         Server;
        proxy_read_timeout        5m;
        proxy_redirect            off;
        proxy_send_timeout        5m;
        proxy_set_header          Host $host;
        proxy_set_header          X-Forwarded-For $http_x_forwarded_for;
        proxy_set_header          X-Real-IP $remote_addr;
        proxy_set_header          X-Forwarded-Proto $scheme;

        location ~* ^/openserver/.+\.(jpg|jpeg|gif|png|ico|css|js|cur|swf)$ {
            root     "%sprogdir%/modules/system/html";
            expires  7d;
        }
    }
    
    # <Не изменяйте этот блок конфигурации/>
    #---------------------------------------#
}

#-----------------------------------------------#
# Конец блока конфигурации хоста
#-----------------------------------------------#
  • Вопрос задан
  • 859 просмотров
Пригласить эксперта
Ответы на вопрос 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
В файл C:\Windows\System32\drivers\etc\hosts добавьте строку.
127.0.0.1 my-domain.dev
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы