잠시만 기다려 주세요

     '싸우지 않는 이재명을 규탄한다. 민생충, 협치충, 역풍충.. 국민들은 치가 떨린다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1059)  |  추천 및 재미 (156)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (613)  |  끄적거림 (136)  |  문예 창작 (716)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    golang

golang - golang virtualhost, vhost
이 름 : 바다아이   |   조회수 : 9149         짧은 주소 : 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
번 호 카테고리 제 목 이름 조회수
179 golang golang , ... 바다아이 1836
178 golang golang , map . 바다아이 1419
177 golang Golang (, , data ) , ... 바다아이 1488
176 golang golang sort ... 바다아이 1726
175 golang golang html.EscapeString html.UnescapeString input value ... 바다아이 1819
174 golang golang go.mod go.sum . GOPATH SRC not module, 1.16 . 바다아이 5126
173 golang go 1.16 ... is not in GOROOT.. GOPATH .... . 바다아이 6028
172 golang , String Formatting 바다아이 7670
171 golang rand.Intn , random, , . 바다아이 7134
170 golang golang ... 바다아이 10267
169 golang golang gopath, goroot .. golang 바다아이 7778
168 golang golang ... Force download file example 바다아이 9593
167 golang golang , , cpu, memory, disk 바다아이 10867
166 golang golang , ... GOOS, GOARCH 바다아이 8622
165 golang golang checkbox ... 바다아이 8384
164 golang golang , , http .... 바다아이 8150
163 golang golang nil , nil , nil ... 바다아이 8497
162 golang 2 golang, go , .... golang .... 바다아이 11386
161 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 8697
160 golang golang postgresql mysql, mariadb scan , null .. 바다아이 8834
159 golang golang , iconv 바다아이 11636
158 golang golang quote escape, unquote 바다아이 9085
157 golang golang , http errorLog , , ... 바다아이 9159
156 golang golang interface , 바다아이 8596
155 golang golang struct .... 바다아이 9339
154 golang golang map map , 바다아이 8800
153 golang golang map .... .... 바다아이 8323
152 golang golang slice copy 바다아이 8456
151 golang golang goto 바다아이 9339
150 golang golang slice sort , int, string, float64 바다아이 8810
| |









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