Golang 中国

go 用 nginx 怎么部署多个服务共享 8080 端口,通过不同的域名访问,希望能详细点,不要指贴一个 server{ … } 的配置
还有服务的路径放在哪,可以随便放吗?怎么指定服务的路径,等一系列的相关操作。网上搜索了一堆,都只是一个server部分的配置

6 回复
heimeil
#1 heimeil • 2017-09-06 19:23

http://blog.csdn.net/lishaojun0115/article/details/53200629
用反向代理,这个链接够清晰了;

跟服务存放的路径没关系,Go是编译型的语言,不是类似PHP之类的CGI脚本语言,不能直接用nginx来托管,要先部署Go的服务,再用nginx来做反向代理。

jesse881025
#2 jesse881025 • 2017-09-07 16:23

谢谢,是挺详细的,看了之后有所了解,但配置后无效,你看看我步骤是否有问题。

  1. bee new beeWebTest 创建项目, app.con中修改端口设为9001
    2.bee run 运行项目
    3.浏览器输入 http://localhost:9001
    4.成功加载了页面
    下面开始部署
    1.bee pack 打包,打包后的文件为beeWebTest.tar.gz
    2.将打包后的文件拷贝到/Users/admin/go/src/WebServer目录下,解压后得到beeWebTest文件夹
    3.在beeWebTest文件夹下创建beeWebTest.conf
    beeWebTest.conf 配置如下

    server {
     listen       8080;
     server_name  beewebtest.com;
    
     charset utf-8;
     access_log  /Users/admin/go/src/WebServer/beeWebTest/beewebtest.com.access.log;
    
     location /(css|js|fonts|img)/ {
         access_log off;
         expires 1d;
    
         root "/Users/admin/go/src/WebServer/beeWebTest/static";
         try_files $uri @backend;
     }
    
     location / {
         try_files /_not_exists_ @backend;
     }
    
     location @backend {
         proxy_set_header X-Forwarded-For $remote_addr;
         proxy_set_header Host            $http_host;
         proxy_pass http://127.0.0.1:9001;
     }
    }
    

    4.在 /usr/local/etc/nginx目录下的nginx.conf文件中的http 里添加
    include /Users/admin/go/src/WebServer/beeWebTest/beeWebTest.conf;
    5.sudo ./nginx -t 测试成功

  2. ./beeWebTest启动服务
  3. sudo ./nginx -s reload
  4. 浏览器输入 beewebtest.com:8080
  5. 应该能访问成功,但访问失败了

求指教

jesse881025
#3 jesse881025 • 2017-09-08 10:39

一楼你给的资料,介绍了nginx 的原理,但具体部署的步骤也只有一个server. 我上面贴的是我这里的详细步骤,哪里错了请指教。

jesse881025
#4 jesse881025 • 2017-09-08 10:40

golang 都这么久了,难道没人这么部署过。

aboc
#5 aboc • 2017-09-08 15:47

访问失败是什么失败,你得具体贴出来,比如503之类的

jesse881025
#6 jesse881025 • 2017-09-08 16:36

就好比你打开一个不存在的网页,这个链接是失效的
也就是我server{…}配置的域名无效

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。