为了运行我做的每个脚本:

go build script.go
mv script script.fcgi

我的Apache配置看起来像这样:
<VirtualHost [myip]:80>
    ServerAdmin [email protected]
    ServerName website.com
    DocumentRoot /home/user/www
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /our_bin [QSA,L]
    <Directory /home/user/www>
        Allow from all
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d [OR]
        RewriteCond %{REQUEST_URI} ^/$
        RewriteRule ^(.*)$ script.fcgi/$1 [QSA,L]
    </Directory>
</VirtualHost>

题:
1)如果我构建1个脚本,它将与我链接的所有软件包一起构建,对吗?
2)我如何自定义fcgi并继续使用,以便每次都不需要构建

对不起,英语不好

最佳答案

你不能Go不是一种“脚本语言”,而Apache不知道如何处理它(与PHP FCGI和变体不同)。

您需要使用HTTP或FCGI服务器构建(编译)您的Go应用程序,然后运行它,然后使用Apache(或nginx)将代理反向转换为您的Go应用程序正在侦听的HTTP端口/ FCGI套接字。

查看Go文档中的net/http文档和simple web application教程。根据我的经验,我建议在FCGI上使用反向HTTP代理,因为它更易于调试/配置。


<VirtualHost myhost:80>
                ServerName www.mydomain.com
                ProxyPass / http://localhost:8000/ # Your Go app's listening port
                ProxyPassReverse / http://localhost:8000/
</VirtualHost>

请注意,这没有经过测试也不是完整的示例,但是希望可以帮助您入门。

关于apache - 在fcgi下在Apache上构建和运行Go脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22109629/

10-11 06:54