NginxとGo言語でWebアプリケーションの開発環境を整えたので、構築メモです。
環境はVirtualBox上で動いているCentOS 7になります。Nginxでアクセスを受けて、httpでGoに渡してGoで処理をさせたいと思います。
FastCGI編はこちら
Nginxの設定ファイルを修正
まだNginxをインストールしていない方はこちら
何があっても大丈夫なように、まず設定ファイルのバックアップを取っておきます。
$ sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.backup2
/etc/nginx/conf.d/default.confを次のように修正します。
server {
listen 80;
server_name localhost;
location /fuga {
proxy_pass http://127.0.0.1:9000;
}
}
confファイルに間違いがないか確認します。下記のように表示されたら問題ありません。
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
設定ファイルを再読み込みさせるために、Nginxを再起動させます。
$ sudo systemctl restart nginx
Goのプログラムを作成
Goの開発環境を作っていない方はこちら
先ほど設定した9000番ポートへアクセスしたら、Hello World!!!と出力するプログラムを作成します。
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/fuga", handler)
http.ListenAndServe(":9000", nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello World!!!")
}
あとはこいつを実行して、http://localhsot/fugaにアクセスすると、Hello World!!!が返ってきます。
# サーバ上から動作確認 $ curl http://localhost/fuga Hello World!!!
ブラウザ経由でアクセスしてもHello World!!!が表示されることが確認できるかと思います。
(VirutualBoxのポートフォワーディング機能を使用しているため、8080ポートのアクセスがCentOSの80ポートへ転送される設定になっています。)

参考:





コメント