🅞leksiy
http://nginx.org/ru/docs/
Maks
location ~ \.(php)$
Maks
Это означает что сначала(по приоритету же у нас регекспы) мы проверяем, заканчивается ли путь на .php
Maks
Если заканчивается то идем в этот контекст и там уже что то делаем
Maks
Но сейчас почти нет такого, что бы пути заканчивались на .php. Получается это кейс ущербный. Если отдельно делаешь рест и фронт, то для апишки юзаешь /api локейшин и там делаешь тоже самое(с фреймворком - стучишься в индекс.пхп)
Maks
А для остальных уже другие правила настраиваешь
Maks
Однако если не юзаешь фреймворк и у тебя тупо пхп файлы - то тут уже надо так же через фастсиджиай но долбиться в конкретный файл
Maks
кста вот для пыхи есть всякие FPM, fastCGI
Maks
для го нет ничего такого? Там чисто proxy_pass юзают в нжинксе?
Alexander
дык фпм это и есть реализация fastCGI сервера
Alexander
https://gist.github.com/atomaths/5403041
Maks
Так статика напрямую нжикс отдает обычно. Я просто подумал что вряд ли для го есть что то типо FPM в пхп.
Maks
но решил спросить
Maks
но спросил не правильно)
🅞leksiy
net/http/fcgi
🅞leksiy
https://gist.github.com/atomaths/5403041
🅞leksiy
Но я честно таким не занимался
Maks
Я думаю нет смысла
Maks
особого
🅞leksiy
Где-то читал, производительность ниже чем у proxy_pass
Maks
Вроде раскурил как nginx конфижить
Maks
статику, бэкенд, всё ясно
Maks
у меня на первом проекте помню весь проект в нжинкс копировался и в пхп контейнер в локали. Я думаю нахуя. А там конфиг видимо был не оч.
Maks
Он проверял на уровне nginx файлы сначала
Maks
а потом уже проксировал
Maks
пыху
Maks
да всё норм всё устраивает
Alexander
вроде то же примерно, что и обычный веб сервер
Alexander
ток уже надо тестить
🅞leksiy
Я с nginx давно уже не работал, но в свое время прикручивал через скрипт на lua бинарь, на го написанный. Типа как модуль. Он получал ip, и в хедерах отправлял данные в proxy_pass. Весело было
Maks
location ~ /\. {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
}
Maks
мне кажется
Maks
или правило одно исключает второе
Maks
а хотя нет вроде, показалось
Maks
Ну ладно. Пошел теперь дальше раскуривать что нить интересное) В целом за вечер разобрался с nginx вроде и его принципами)
Maks
вообще отдыхать надо))) У меня же отпуск)
FN
Malyuk
А чо так?
Потому что он крайне избыточен, а новички принимают его за де факто стандарт и в итоге мы видим, что верхняя структура проектов соответствует этому лэйауту, а внутри все распихано как душе угодно
Herman
Herman
А чо так?
Потому что его принимают как абсолют. Он не стандарт даже близко
Maks
Какие на фронте сейчас адекватные способы генерации страницы
Maks
которые для сео оптимальны
Maks
обычные spa не подойдут
Maks
на сколько я знаю
Maks
Для админки spa норм
Vitaly
Maks
кто тут самый умный
Maks
Вот у меня есть nginx контейнер в нем я сделал 2 директивы сервер для разных server_name. Они соответственно разные порты слушают.
Как мне в линуксе сделать так:
mysite.com -> долбится в порт nginx контейнера 80
api.mysite.com -> в 443. что бы локально эмитировать среду продакшина типо.
Maks
хм, есть одна идейка.
Maks
Вариант - держать локально запущеный докер nginx с конфигами, в котором можно прописывать те сервисы которые ты будешь запускать на различных портах.
Например базовый nginx образ запущенный, который слушает порт 80 и имеет множество server. Каждый server обслуживает один server_name. Если нам нужно добавить сервис - то просто дописываем конфиг и в etc/hosts дописываем хостнейм и редиректим его на обычный локалхост. Этот nginx подхватывает запрос и внутри просто проксирует на нужный порт локалхоста как вариант.
Maks
Если идея понятно, то может ли это потянуть на первую статью для хабра?)
Maks
можно в целом сразу и 80 и 443 порт зацепить если нужно. А там уже самим серты разруливать
Eduard
Всем привет, сейчас делаю тренировочный проект на echo framework, решил добавить свагер документацию. Все сделал , как написано в офф. документации echo-swagger, но оно не показывает контроллеры мои. Кто-то сталкивался с таким? Буду очень благодарен за помощь. Если нужен какой-нибудь код, то кину на pastebin
Andrey
Всем привет, сейчас делаю тренировочный проект на echo framework, решил добавить свагер документацию. Все сделал , как написано в офф. документации echo-swagger, но оно не показывает контроллеры мои. Кто-то сталкивался с таким? Буду очень благодарен за помощь. Если нужен какой-нибудь код, то кину на pastebin
А ты проверил, что у тебя прога, которая поднимает рест для свагера берет нужный yaml/json файл, что он у тебя вообще есть, и то что скопировав его содержимое, на любом сайте сваггер онлайн, ты можешь его открыть?
Eduard
Нет, не пробовал, сейчас попробую, спасибо
Eduard
alex
Пишу утилитку для решения админских задач. Утилите передаю несколько аргументов, а она нужным образом выставляет окружение и запускает другие программы преимущественно на java. Столкнулся с проблемой что команда
exec.Command("cmd.exe", "/C", myArgs)
выплёвывает в cli аргументы по частям, т.е. если имя файла содержит пробел:
C:\11.1.2.306.001 (07.02.2022)\file.csv
то в командную строку выплёвываются два куска:
1. C:\11.1.2.306.001
2. (07.02.2022)\file.csv
как результат получаем file not found exception
alex
попытка добавить кавычки ситуацию не исправило
Bagasl
alex
интересная мысль
Bagasl
или в винде не так эскейпинг работает?
alex
по моему всё также экран \
Andrey
А ты в кавычки весь путь брал?
alex
да
alex
делал буквально вот так
alex
importFile = fmt.Sprintf("%q", params[i][2])
alex
params[i][2] - это имя файла
alex
с путём
alex
и вот так делал
alex
importFile = fmt.Sprint("\"", params[i][2], "\"")
alex
попробую экран на пробел поставить
Andrey
Ты же знаешь, что в винде знак экранирования это вроде как ` или ^
alex
а вот это интересная инфа
alex
до этого вроде бы работало с \
Eduard
Andrey