从nginx服务golang脚本

问题描述:

我想用go语言编写web应用程序。从nginx服务golang脚本

当运行:

go run myscript.go 

它工作正常,我有去 “网/ HTTP” 模块 在这里工作是我在我的旅途脚本已经完成:

http.ListenAndServe(":8081", nil) 

我现在想和nginx一起工作。我读过,我应该把nginx置于代理模式。这意味着当nginx在80个http端口上收到一个http请求时,它会代理它执行8081端口。

我该如何自动启动并重新启动“运行”过程?

+0

你想要的,那Nginx的应启动并重新启动“跑步”还是什么? –

+0

是的,如果有可能,我想nginx启动并重新启动go run命令 – Bob5421

+0

nginx是一个反向代理服务器,它不是主管或类似的东西,它做一件事,做得很好。 –

与Php相比,Go不是像Apache这样的Web服务器运行的脚本。它有另一种更接近php-fpm的工作模式。

Go应用程序是一个独立的Web服务器。它接受giver tcp端口上的连接和回复。它独立于nginx,可以安装在单独的机器上。 所以它应该是应用程序运行与外部工具。

你想用“用nginx启动Go应用程序”来解决什么问题?

UPD 一个完整的例子:

  1. 在服务器上安装nginx的。具体步骤取决于您的操作系统。对于Ubuntu的也可以是apt-get install nginx

  2. 编辑nginx.conf到代理通放入锅中8081:

    location/{ 
        proxy_pass http://127.0.0.1:8081/; 
    } 
    
  3. 运行你的程序go run ...

+0

我明白去应用程序是一个独立的Web服务器。什么是启动/停止此应用程序的方式? – Bob5421

+1

最好的方法是使用内置于系统中的运行工具。这可能是init脚本,systemd等等。如果你更喜欢Docker,你可以建立一个图像,然后'docker start your-image'。首先,你可以用'go build'将Portman文件放到你的home文件夹中,然后运行'。/ program'来建立一个程序 –