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

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

ただいまの
回答率

90.48%

  • Linux

    4508questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • nginx

    1050questions

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

  • SSL

    604questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

ERR_SSL_PROTOCOL_ERROR が表示されてしまう

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 86

filu

score 0

前提・実現したいこと

現在、Ubuntu 18.10でnginxを動かしています。
お名前.com、MyDNS、Let's Encryptで外部からドメイン名でhttpsでのアクセスができています。

今回、Webカメラを繋げて、mjpg-streamerを使って外部からでもグッピーの水槽の様子を見られるようにしたいと思っております。
現在、https://○○○.○○○.○○○.○○○:○○○○(LAN内でのipとmjpg-streamerのポート番号)/?action=stream を入力すると、ストリーミングで見ることができています。

発生している問題・エラーメッセージ

しかし、https://○○○.○○:○○○○(ドメイン名とmjpg-streamerのポート番号)/?action=streamと入力するとchromeのブラウザで
イメージ説明
このような画面となってしまって、表示ができません。

最近、linuxを学び始めて、Webサーバを立てるにも様々なサイトを見よう見まねでやってきたくらいなので、知識が乏しいです。

皆様のお力をお貸しください。よろしくお願いいたします。

補足

2019/6/9 14:32
補足1
取得した証明書とドメイン名は合っていると思います。アクセスしようとしているドイメン名も塗りつぶしたドメイン名と同じです。
イメージ説明

補足2
しかし、「https://(ドメイン名):アプリのポート」でアクセスしようとするとこのような表示になります。
赤く塗りつぶしたところは同じドメイン名が表示されています。
イメージ説明

2019/6/10 11:37
補足3
リバースプロキシを設定した後
![イメージ説明

2019/6/10 13:43
補足4
リクエストパラメータ
イメージ説明

2019/6/10 20:36
補足5
mjpg-streamerの起動コマンド
この.shファイルに実行権限を付けて起動しています。
最後の-bは付けたり付けなかったり
起動コマンド

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • scsi

    2019/06/10 19:31

    mjpg-streamerの起動コマンドを見せてください

    キャンセル

  • scsi

    2019/06/10 19:32

    いや、起動コマンドは関係なさそうか。

    キャンセル

  • scsi

    2019/06/10 21:44

    関係あるかわかりませんが proxy_redirect off; を削除した場合どうなるでしょうか。

    キャンセル

回答 3

+2

nginxの設定が悪いのか、「https://ドメイン名:アプリのポート」でアクセスするとaccess.logにもerror.logにもログが残らないです...

アプリのポートというのは、mjpg-streamer のポートのことでしょうか?

mjpg-streamer を確認してみたところ、http://192.168.10.10:8080 のように mjpg-streamer を起動したホストの IP アドレスと mjpg-streamer の設定で指定したポートを使って、 Webブラウザでアクセスできるのですね。

上記のポートが、mjpg-streamer のポートであれば、 nginx で、mjpg-streamer に中継するような設定をしていないのであれば、nginx 経由でのアクセスはできません。

ストリーミングをSSL通信にする の例のように、nginx で、リバースプロキシを設定して、アクセスする必要があるのではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

証明書を取得したドメインとhttpsでアクセスするドメインは一致していますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/09 14:34

    ご回答ありがとうございます。
    補足として写真追加しました。
    取得したドメイン名とアクセスするドイメンは同じだと思います。

    キャンセル

check解決した方法

0

皆さん、初めての投稿で色々情報不足な投稿となってしまいご迷惑をお掛けしてしまいました。。。

色々、ご意見いただきながら、リバースプロキシを設定し、色々試してみました。

https://github.com/jacksonliam/mjpg-streamer/issues/95

https://community.octoprint.org/t/reverse-proxy-configuration-examples/1107

ここの2つのサイトを見つけ、自分もupstreamというものを記述してみたところ、
無事、mjpg-streamからの映像を表示させることができました。

nginxのconfで変更を加えた点は次の通りです。
・httpモジュールの間に

upstream "mjpg-streamer" {
        server 127.0.0.1:23236;
}


を記述
・443をlistenしているserverモジュールの間に

location /guppy/ {
    access_log /var/log/nginx/guppy-access.log main;
    error_log /var/log/nginx/guppy-error.log debug;
    rewrite_log on;
    proxy_set_header    Host $host;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_pass  http://mjpg-streamer/;
    }


を記述

です。proxy_redirectは参考ページ先に書いてなかったので削除しました。
rewriteを記述したり、locationの正規表現?のところも色々変えてみたりしましたが、結局、upstreamでの記述であっけなく表示することができました。

私自身、nginxやhttpのやりとり自体の知識と理解力があまりにも乏しいため、なぜこれで解決をしたのか、なぜ今までではダメだったのかが理解できていません。。。

もし、わかる方がおりましたら、ご教示いただけるととても嬉しいです。。。
一応、問題の解決はしましたので、解決済みへと変更します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/11 18:18

    良かったですね。なんとなく分かりました。

    proxy_pass の引数のURLは、末尾に「/」がなかったのが原因で、末尾に「/」をつければ良かったんだと思います。こうです→ 'proxy_pass https://127.0.0.1:23236/`

    URLの末尾に `/` がない場合は、https://127.0.0.1:23236/guppy?action=stream というふうに 転送されるので、「No File extension found」 というエラーになったんだと思います。

    mjpg-stream は URLの最後の ファイル名が 指定されない場合は「index.html」とみなします。それ以外の場合は ファイル名に「.」があるかチェックして、「.」がないと 「No File extension found」 というエラーになります。「/guppy」の部分がファイル名と認識され、かつ「.」がないので このエラーが出たとすれば 辻褄が合います。

    キャンセル

  • 2019/06/14 22:30

    ご返信が遅くなってしまい、すみません><

    proxy_pass https:127.0.0.1:23236/
    だと502 Bad Gatewayと表示されましたが、
    proxy_pass http:127.0.0.1:23236/
    だとちゃんと表示されました!!

    なるほど... そのような動作だから引っ掛かっていたのですね、理解できました!
    ありがとうございます!
    私も皆さんのように問題の原因を追えられるようこれからも勉強していきます!

    キャンセル

同じタグがついた質問を見る

  • Linux

    4508questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • nginx

    1050questions

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

  • SSL

    604questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。