我无法从 Google 搜索中找到这个答案,似乎没有人清楚地解释纯 Go 网络服务器和 nginx 反向代理之间的区别。前面大家好像都用nginx做web应用。
我的问题是,虽然 Go 具有所有 http 服务功能,但在纯 Go Web 服务器上使用 nginx 有什么好处?
在大多数情况下,我们为这里的所有路由设置了 Go 网络服务器,并在前面设置了 nginx 配置。
就像是:
limit_req_zone $binary_remote_addr zone=limit:10m rate=2r/s;
server {
listen 80;
log_format lf '[$time_local] $remote_addr ;
access_log /var/log/nginx/access.log lf;
error_log /var/log/nginx/error.log;
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
server_name 1.2.3.4 mywebsite.com;
}
当我们有这个 Go 时:
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
nginx 和 Go Web 服务器的流量是否不同?如果没有,为什么我们有两层 Web 服务器?
请帮助我理解这一点。
慕慕森
子衿沉夜
相关分类