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ポートへ転送される設定になっています。)
参考:
コメント