잠시만 기다려 주세요

HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (888)  |  추천 및 재미 (152)  |  자료실 (20)  |  끄적거림 (519)  |  시나리오 (760)  |  드라마 대본 (248)  |  

2020년 09월 21일
위군자 생활을 하지 마라. 두 마음으로 인생을 사는 것은 슬픈일이다. 문제는 대부분의 사람이 자신이 위군자인지조차 모르고 산다는 것. - 바다아이
 




    golang

golang - golang virtualhost, vhost
이 름 : 바다아이   |   조회수 : 3114         짧은 주소 : https://www.bada-ie.com/su/?171591962291
virtualhost 제일 좋은 방법은 클라우드 서버 이용하시는 것입니다.
요즘 워낙 클라우드 서비스가 많고 가격도 착하니까 1서버 1서비스 이용하시라 권합니다. ^^;
예전처럼 다닥다닥 한 서버에 몰아서 서비스할 필요가 없습니다.
보안상, 안전상 이것이 더 좋다고 생각합니다.
하나 죽으면 다 죽는 거 보다 각각 서비스가 다른 서버에서 돈다면 안전하겠죠...

그래도 다닥다닥 붙이겠다면.... 음...
개인적인 생각입니다만 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
번 호 카테고리 제 목 이름 조회수
173 golang , String Formatting 바다아이 219
172 golang rand.Intn , random, , . 바다아이 237
171 golang golang ... 바다아이 1394
170 golang golang gopath, goroot .. 바다아이 1056
169 golang golang ... Force download file example 바다아이 1554
168 golang golang , , cpu, memory, disk 바다아이 2281
167 golang golang , ... GOOS, GOARCH 바다아이 1603
166 golang golang checkbox ... 바다아이 1838
165 golang golang , , http .... 바다아이 1772
164 golang golang nil , nil , nil ... 바다아이 1865
163 golang 2 golang, go , .... golang .... 바다아이 2669
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 1947
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 2041
160 golang golang , iconv 바다아이 2186
159 golang golang quote escape, unquote 바다아이 2101
158 golang golang , http errorLog , , ... 바다아이 2208
157 golang golang interface , 바다아이 2142
156 golang golang struct .... 바다아이 2269
155 golang golang map map , 바다아이 2126
154 golang golang map .... .... 바다아이 2095
153 golang golang slice copy 바다아이 2052
152 golang golang goto 바다아이 2140
151 golang golang slice sort , int, string, float64 바다아이 2204
150 golang URL Parsing, url . parse 바다아이 2263
149 golang golang , interface{} ... 바다아이 2184
148 golang golang interface to string, , , map slice json 바다아이 2036
147 golang golang How to convert JSON string to map and slice, json 바다아이 2187
146 golang golang , file write, Writing Files 바다아이 2316
145 golang golang Insert Line or String to File, , , , , 바다아이 2064
144 golang golang replace 바다아이 2144
| |








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