質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

3回答

3493閲覧

centos6上でgoとngnixの設定について教えてください。

UekiKouji

総合スコア121

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2017/10/22 03:00

編集2017/10/22 04:39

いつもお世話になります。
centos6上でgoの環境を構築したいのですが、うまくいきません。ご教授をお願いします。
vagrant上にcentos6をインストールしています。
vagrant上でのIPアドレスは192.168.33.10です。
http://192.168.33.10でアクセスした際、Hello World!とですようにしたいです。
実行結果は、http://192.168.33.10の時、
イメージ説明
http://192.168.33.10:9000の時、
イメージ説明
http://192.168.33.10:9000でアクセスした時期待した結果になりました。
環境構築

$ brew install go $ brew install nginx

// .bashrc

# .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi export PATH=$PATH:/usr/local/nginx/sbin

ngnixの設定
// /etc/nginx/conf.d/default.conf

# # The default server # server { listen 81 default_server; listen [::]:81 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

// /etc/nginx/conf.d/golang.conf

server { listen 80; server_name localhost; location / { fastcgi_pass 192.168.33.10:9000; include fastcgi_params; } }

goの実行ファイル
// /var/golang/index.go

package main import ( "fmt" "net/http" ) type MyHandler struct{} func (h *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World!") } func main() { handler := MyHandler{} // handlerはハンドラ。 server := http.Server{ Addr: "192.168.33.10:9000", // Addr: ":9000", // これでもOK Handler: &handler, } server.ListenAndServe() }

ソースは環境構築のために簡単に書いたものです。centos6上にgoとngnixの環境を作成する目的は、https通信の環境を作るためです。

設定を以下のように変更しました。
しかし、うまくいきません。
error.logを見ると、接続できていないみたいです。
どのようにすれば、よろしいのでしょうか。
// default.conf

# # The default server # server { listen 81 default_server; listen [::]:81 default_server; server_name localhost; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

// golang.conf

server { listen 80 default_server; server_name 192.168.33.10; location / { fastcgi_pass 192.168.33.10:9000; include fastcgi_params; } }

/var/log/nginx/error.log

2017/10/22 05:28:15 [error] 15847#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.33.10" 2017/10/22 05:31:46 [error] 15934#0: *1 upstream sent unsupported FastCGI protocol version: 72 while reading response header from upstream, client: 192.168.33.1, server: 192.168.33.10, request: "GET / HTTP/1.1", upstream: "fastcgi://192.168.33.10:9000", host: "192.168.33.10" 2017/10/22 05:31:48 [error] 15934#0: *1 upstream sent unsupported FastCGI protocol version: 72 while reading response header from upstream, client: 192.168.33.1, server: 192.168.33.10, request: "GET / HTTP/1.1", upstream: "fastcgi://192.168.33.10:9000", host: "192.168.33.10"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

とりあえず server_name は間違えているので下記を確認してみてください。
https://qiita.com/white_aspara25/items/bc9d9b9b2dc0a673169a

投稿2017/10/22 03:15

scsi

総合スコア2840

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

UekiKouji

2017/10/22 04:40

設定を変えてみたのですが、うまくいきませんでした。
scsi

2017/10/22 06:01 編集

Goは触ったことないんですが、やりたいことはfastcgiではなくproxyではないでしょうか?
UekiKouji

2017/10/22 07:59

fastcgiをproxyに変更したら、うまくいきました。ご指摘ありがとうございます。
UekiKouji

2017/10/22 08:30

本来、ベストアンサーにすべきところを操作を誤ってしまい、できませんでした。次回から、気をつけます。 大変、失礼しました。
guest

0

今回の質問は、sisiさんにご指摘していただいて、解決しました。
自己解決したものでは、ありません。
よろしくお願いいたします。

投稿2017/10/22 08:33

UekiKouji

総合スコア121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

結果
ngnixの設定を以下にするとうまくいきました。

// default.conf

# # The default server # server { listen 81 default_server; listen [::]:81 default_server; server_name localhost; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

// golang.conf

server { listen 80 default_server; server_name 192.168.33.10; location / { proxy_pass http://192.168.33.10:9000; } }

投稿2017/10/22 08:27

UekiKouji

総合スコア121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問