分享
  1. 首页
  2. 文章

Golang项目部署2,代理部署

极粉 · · 1293 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

文章来源:https://goframe.org/deployment/proxy

代理部署

代理部署即前置一层第三方的WebServer服务器处理所有的请求,将部分请求(往往是动态处理请求)有选择性地转交给后端的Golang应用程序执行,后端部署的Golang应用程序可以配置有多个。这种模式常用在复杂的WebServer配置中,常见的场景例如:需要静态文件分离、需要配置多个域名及证书、需要自建负载均衡层,等等。

虽然Golang实现的WebServer也能够处理静态文件,但是相比较于专业性的WebServernginx/apache来说比较简单,性能也较弱。因此不推荐使用Golang WebServer作为前端服务直接处理静态文件请求。

Nginx

我们推荐使用Nginx作为反向代理的前端接入层,有两种配置方式实现动静态请求的拆分。

静态文件后缀

这种方式通过文件名后缀区分,将指定的静态文件转交给nginx处理,其他的请求转交给golang应用。
配置示例如下:

server {
 listen 80;
 server_name goframe.org;
 access_log /var/log/gf-app-access.log;
 error_log /var/log/gf-app-error.log;
 location ~ .*\.(gif|jpg|jpeg|png|js|css|eot|ttf|woff|svg|otf)$ {
 access_log off;
 expires 1d;
 root /var/www/gf-app/public;
 try_files $uri @backend;
 }
 location / {
 try_files $uri @backend;
 }
 location @backend {
 proxy_pass http://127.0.0.1:8199;
 proxy_redirect off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}

其中,8199为本地的golang应用WebServer监听端口。

例如,在该配置下,我们可以通过http://goframe.org/my.png访问到指定的静态文件。

静态文件目录

这种方式通过文件目录区分,将指定目录的访问请求转交给nginx处理,其他的请求转交给golang应用。
配置示例如下:

server {
 listen 80;
 server_name goframe.org;
 access_log /var/log/gf-app-access.log;
 error_log /var/log/gf-app-error.log;
 location ^~ /public {
 access_log off;
 expires 1d;
 root /var/www/gf-app;
 try_files $uri @backend;
 }
 location / {
 try_files $uri @backend;
 }
 location @backend {
 proxy_pass http://127.0.0.1:8199;
 proxy_redirect off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}

其中,8199为本地的golang应用WebServer监听端口。

例如,在该配置下,我们可以通过http://goframe.org/piblic/my.png访问静态文件。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:极粉

查看原文:Golang项目部署2,代理部署

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1293 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏