잠시만 기다려 주세요


 
HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (771)  |  추천 및 재미 (15)  |  자료실 (16)  |  끄적거림 (439)  |  시나리오 (757)  |  드라마 대본 (248)  |  

2019년 05월 24일
목적이 있으면 잔 가지에 스치는 아픔과 유혹은 돌아보지 말아야 한다. 더 큰 미래를 위해 소리 없이 걷고 또 걸어야 한다. - 바다아이
 

    golang

golang - golang virtualhost, vhost
이 름 : 바다아이   |   조회수 : 1801         짧은 주소 : https://www.bada-ie.com/su/?181523071382
개인적인 생각입니다만 golang 에서 virtualhost 처리하는 것보다
그냥 속편하게 nginx 하고 같이 가시는 것이  좋습니다. ^^;
nginx 에서 virtualhost 처리하고 특정 포트에서 golang http 를 cgi 방식으로 돌리세요...

아래는 golang 으로 virtualhost 처리 방식입니다.
똑같습니다. 80으로 들어오는 것을 도메인 별로 다른 포트로 돌려서
해당 포트로 또 한개의 http 데몬 돌리는 거죠..

양쪽 방법 모두 단점과 장점이 분명 있습니다..
본인에게 맞는 방식을 사용하세요...


package main

import(
    "net/url"
    "net/http"
    "net/http/httputil"
)

func main() {
    vhost1, err := url.Parse("http://127.0.0.1:1980")
    if err != nil {
            panic(err)
    }
    proxy1 := httputil.NewSingleHostReverseProxy(vhost1)
    http.HandleFunc("publicdomain1/", handler(proxy1))
    
    vhost2, err := url.Parse("http://127.0.0.1:1981")
    if err != nil {
            panic(err)
    }
    proxy2 := httputil.NewSingleHostReverseProxy(vhost2)
    http.HandleFunc("publicdomain2/", handler(proxy2))
    
    err = http.ListenAndServe(":80", nil)
    if err != nil {
          panic(err)
    }
}

func handler(p *httputil.ReverseProxy) func(http.ResponseWriter, *http.Request) {
    return func(w http.ResponseWriter, r *http.Request) {
            p.ServeHTTP(w, r)
    }
}


출처 : https://gist.github.com/camoles/523dac8cc0fe40d52f66
 
| |


      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
169 golang golang ... Force download file example 바다아이 147
168 golang golang , , cpu, memory, disk 바다아이 309
167 golang golang , ... GOOS, GOARCH 바다아이 310
166 golang golang checkbox ... 바다아이 374
165 golang golang , , http .... 바다아이 423
164 golang golang nil , nil , nil ... 바다아이 431
163 golang 2 golang, go , .... golang .... 바다아이 629
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 515
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 550
160 golang golang , iconv 바다아이 627
159 golang golang quote escape, unquote 바다아이 620
158 golang golang , http errorLog , , ... 바다아이 697
157 golang golang interface , 바다아이 631
156 golang golang struct .... 바다아이 694
155 golang golang map map , 바다아이 664
154 golang golang map .... .... 바다아이 721
153 golang golang slice copy 바다아이 633
152 golang golang goto 바다아이 693
151 golang golang slice sort , int, string, float64 바다아이 725
150 golang URL Parsing, url . parse 바다아이 715
149 golang golang , interface{} ... 바다아이 703
148 golang golang interface to string, , , map slice json 바다아이 657
147 golang golang How to convert JSON string to map and slice, json 바다아이 667
146 golang golang , file write, Writing Files 바다아이 818
145 golang golang Insert Line or String to File, , , , , 바다아이 640
144 golang golang replace 바다아이 680
143 golang golang split explode , , ... 바다아이 724
142 golang golang email read parse, , ..... .... 바다아이 689
141 golang golang smtp email sendmail 바다아이 716
140 golang golang sort , example, struct, 바다아이 753
| |






Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ FreeBSD + GoLang + PostgreSQL ]
서버위치 : New Jersey  실행시간 : 0.03225
to webmaster... gogo sea. gogo sea.