438 文字
2 分
Nginx + GolangでWebアプリケーション開発 ~http編~
NginxとGo言語でWebアプリケーションの開発環境を整えたので、構築メモです。
環境はVirtualBox上で動いているCentOS 7になります。Nginxでアクセスを受けて、httpでGoに渡してGoで処理をさせたいと思います。
FastCGI編はこちら
Nginx + GolangでWebアプリケーション開発 ~FastCGI編~
Nginxの設定ファイルを修正
まだNginxをインストールしていない方はこちら
CentOSに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 -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful設定ファイルを再読み込みさせるために、Nginxを再起動させます。
$ sudo systemctl restart nginxGoのプログラムを作成
Goの開発環境を作っていない方はこちら
Linux(CentOS, Ubuntu)に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/fugaHello World!!!ブラウザ経由でアクセスしてもHello World!!!が表示されることが確認できるかと思います。
(VirutualBoxのポートフォワーディング機能を使用しているため、8080ポートのアクセスがCentOSの80ポートへ転送される設定になっています。)
