그래서 한 도메인의 모든 요청을 고유 한 IP로 받아들이고 다른 모든 도메인과 IP를 처리하도록 Go에서 webapp를 만들려고합니다. Nginx (PHP 제공).Go Webapp & Nginx : 청취에 대한 혼란, fastcgi 및 역방향 프록시
이 작업을 수행하는 방법에 대해 혼란스러워합니다. Nginx가 특정 도메인의 요청을 FastCGI로 전달하도록 Gogin 웹 응용 프로그램에서 수신하도록 구성하여 많은 사람들이이 작업을 수행하는 것처럼 보입니다. 이런 식으로 뭔가 :
Nginx.conf
server_name www.mydomain.com;
listen 123.123.123.123;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9001;
이동
func main() {
listener, _ := net.Listen("tcp", "127.0.0.1:9001")
srv := new(MyServerObject)
fcgi.Serve(listener, srv)
}
내가 이해하지 못하는 것은 이것이다 : 여기 우리가 Nginx에 다음 특정 IP와에서 특정 도메인에 대해 듣고있다 fastcgi로 전달한 다음이를 Go로 전달합니다.
왜 이런가요? Nginx를 가질 수 없습니까? 이 도메인을 청취 한 다음이 도메인 만 수신합니까? 그러면 리버스 프록시없이보다 효율적으로 동일한 결과를 얻을 수 있습니다.
Go가 듣고있는 도메인에 전용 IP를 사용할 수 있으므로 (내 생각에는) 충돌이 없을 것입니다. Nginx는 123.123.123.123:80을 듣지 않고 Go는 123.123.123.123:80을 듣고 있습니다 ... 따라서 역방향 프록시와 fastcgi가 필요 없습니다.
내 생각이 맞나요? 아니면 뭔가 빠졌습니까?
올바른 경우 Nginx에서이 IP/도메인의 수신기를 제거한 다음 아래 코드와 같이 사용하십시오.
func main() {
http.HandleFunc("/", someFunction)
http.ListenAndServe("123.123.123.123:80", nil)
}
팁 : http.ListenAndServe를 사용하십시오. Go의 FCGI 구현은 HTTP보다 훨씬 느립니다. – elithrar