Задать вопрос

В чем отличие ngnix от golang?

Всем привет. Решил пересесть с фронта на бек. Начал читать про сервера. И вообще запутался. Если Niginx - это веб-сервер. А go - это ЯП, на котором делают серверное приложение, то как go может работать на ngnix? Т.е это же две одинаковые вещи. Ток nginx - это уже все готовое, а на go надо все с нуля делать?
  • Вопрос задан
  • 1355 просмотров
Подписаться 5 Простой Комментировать
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Ну раз с фронта пересели, то аналогию понять должны: В чëм отличие Google Chrome от JavaScript?
Ответ написан
@deliro
nginx — это реверс-прокси
go — это яп.

в чём вопрос-то?

то как go может работать на ngnix?

nginx проксирует запрос в сервер на го, который пишет программист. Цепочка проксей может быть сколько угодно большой. Ты можешь поставить nginx -> nginx -> caddy -> nginx -> gin, никто не запрещает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
На самом деле эта путаница по-человечески очень понятна и объяснима.
Вы, как фронтендер, воспринимаете "веб-сервер" как такой черный ящик, "то место, откуда фронт запрашивает данные".

В то время как этот термин может означать несколько разных понятий.
1. Веб-сервер в вашем, широком понимании. Бэкенд целиком.
2. Также веб-сервером может называться и сам компьютер, на котором все это крутится.
3. В более узком смысле - это программа, которая принимает НТТР запросы. Вот это nginx и есть. Но сам по себе, без помощи других программ, он не может полностью представлять услуги веб-сервера. Например, в нем нет базы данных. Это, скорее, как правильно написали в соседнем ответе - такой прокси-сервер, который частично обрабатывает запросы сам (например к статическим файлам), а частично - проксирует запросы на другие программы.

И вот на Го (или РНР, Питоне, JS, C#) как раз и пишется эта программа, которая, к примеру, обращается в БД, получает нужные данные и отдает их Nginx-у, который уже и возвращает их клиенту
Ответ написан
@res2001
Developer, ex-admin
Веб сервер занимается обслуживанием сетевых соединений, передачей данных по сети и т.п. вещами.
Приложения на go, PHP и прочих питонах вызываются веб сервером для генерации ответа на пользовательский HTTP запрос, в приложение в качестве параметра передается сам запрос. В простейшем случае, веб-сервер в качестве ответа может просто возвращать статический файл на диске, а не запускать программу.
Таким образом приложение напрямую не взаимодействует по сети с клиентом, а работает через посредника - веб-сервер.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы