IoT+WEBのためのホームサーバ計画の実装編7。Web側。

WEB側とは、

ここで言うWEB側とは、以下を指します。
●Nginxリバースプロキシ
●Nginx Webサーバ
●WebSocketサーバ
●TCP/IPサーバ
● DB
まぁ一度、ここで書きました。
あ、DBとかは書いてませんでえしたけど^^;

ここでは、ユーザ登録とか、そもそものサーバの設定とか色んなことやりますよ。

ユーザ登録、ユーザによるアクセス関係を絵に描いてみた

まぁこんな感じで考えましたよ。
まぁごく普通の感じです。
2段階認証とかしてませんが^^;

 

 

ますザーバの設定

まず、サーバの設定ですが、ここでは以下にはあんまり触れません。
●Webサーバの設定そのものとか
●PHPの設定とか

とりあえずこれらは当然動作するものとして話を進めましょう。
順番としては、、

WEBサーバの設定➡SSLの設定➡SSLでアクセスの確認➡WebSocketのLOCALでの動作確認➡リバースプロキシしてNginx経由でwss://でのアクセス確認

という感じです。

Nginxの設定

あんまり解説はしませんが、LetsEncryptのための設定だったり、
SSLの方はリバースプロキシでlocalhost:60001へhttpで(wsで)もってっています。

	server {
		set	$TOP	/***************(WEBのTOP)
		index index.php index.html;
		listen       80;
		server_name  【ドメイン名】
		access_log  $TOP/【LOG名】
		location ^~ /.well-known/acme-challenge/ {
			default_type "text/plain";
			root		$TOP/【documentRoot】
		}
		location / {
			# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
			return 301 https://$host$request_uri;
		}
	}
	server {
		set	$TOP	/***************(WEBのTOP)
		index index.php index.html;
		listen       443	ssl;
		server_name  【ドメイン名】
		ssl_certificate     /etc/letsencrypt/live/【ドメイン名】/fullchain.pem;
		ssl_certificate_key /etc/letsencrypt/live/【ドメイン名】/privkey.pem;
		#------------------------------------------------------
		proxy_set_header Host $http_host;
		access_log  $TOP/ws.finred.tech.log main;
		client_max_body_size 100M;
		proxy_max_temp_file_size 1024M;
		proxy_buffers 8 64k;
		proxy_buffer_size 64k;
		#------------------------------------------------------
		location / {
			proxy_pass http://localhost:60001;
	        proxy_set_header Upgrade $http_upgrade;
	        proxy_set_header Connection "upgrade";
	        proxy_http_version 1.1;
		}
	}
	#------------------------------------------------

あとはjavascript側で、
new WebSocket(‘ws://127.0.0.1:60001’)
だったのを、
new WebSocket(‘wss://【ドメイン名】’)
ってやってみると、

はい。できてますね。
でも、リバプロしてるので、addressが127.0.0.1になってます。
LAN上でやってみると、

そう、呼び出し元がちゃんと出てますけどね。

まぁでも、WebSocketでこのIPを直接叩くこともないので、
とくにいらないっちゃいらないんですけどね。

ということで、サーバの設定、SSLの設定(書いて無くてすみません^^;)、リバースプロキシの設定、WebSocketがちゃんと動作するかのテストをしたとこで、今日はおわります^^;^^;

 

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です