28
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry PiでWebページ公開

Last updated at Posted at 2019-09-10

はじめに

 Raspberry Piを使用して、Webページを公開します。

  • 環境
    • 接続側:Windows10のコマンドプロンプトでのOpenSSH
    • サーバー側:Raspberry Pi3B Raspbian 10

ファイアウォールのインストール&設定

 まず、ファイアウォールをインストールします。Ubuntuにデフォルトでインストールされている、Uncomplicated Firewall(ufw)を使用します。

sudo apt-get install ufw

次に、ポート開放の設定を行います。Webページを公開するので、httpの80番とhttpsの443を開放します。また、sshも使用するので、22番も開放します。

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443

 上記のポート以外閉じるようにします。

sudo ufw default deny

 最後に、ファイアウォールを有効化します。

sudo ufw enable

 ※ファイアウォールの設定確認。

sudo ufw status

Nginxのインストール

 Webサーバーソフトは、Apache、IIS、LiteSpeed、Nginxなどがありますが、今回は、軽量なNginxをインストールします。

sudo apt-get install nginx

 インストールしたNginxを起動させます。

sudo systemctl start nginx

 ブラウザにRaspberry PiのIPアドレスを入力すると、Nginxのデフォルトページが表示されます。
1.png

公開するWebページをアップロードor作成

 公開したいWebページをRaspberry Piにアップロードするか、Vim、Visual Studio Code Insidersで利用できるRemote Developmentを使用してWebページを作成します。
 例として、下記のHTMLファイルを使用します。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title> - Nginx on Raspberry Pi - </title>
	<style>
		body {
			width: 90%;
			margin: 40px auto auto auto;
			text-align: center;
			font-family: 'Yu Gothic', 'Hiragino kaku Gothic Pro', sans-serif;
		}
	</style>
</head>
<body>
	<h1>Raspberry PiにNginxをインストール!</h1>
</body>
</html>

 上記のHTMLファイルを/var/www/htmlにアップロードor作成します。
 Raspberry PiのIPアドレスをブラウザに入力し、作成したHTMLファイルの内容が表示されると成功です。
2.png

IPアドレスの固定(ルーター側設定)

 IPアドレスを固定するためにルーターの管理画面を使用します。ここでは、NEC製のルータ、Atermでの例です。メーカーごとに管理画面の設定が異なるので、マニュアル等を参照してください。
 MACアドレスのところに、b8:27から始まるRaspberry PiのMACアドレスを入力し、IPアドレスのところに、使用したいIPアドレスを入力します。
3.png

IPアドレスの固定(Raspberry Pi側設定)

 上記で設定したIPアドレスをRaspberry Piの設定ファイルに書き込みます。/etc/dhcpd.confをエディタで編集します。

interface eth0 #有線LA
static ip_address=192.168.0.20 #上記で設定したIPアドレス
static routers=192.168.0.1 #NEC Atermの場合のルーターのアドレス
static domain_name_servers=192.168.0.1 #8.8.8.8のようなパブリックDNSでもOK

 設定後、Raspberry Piを再起動させます。

ポートマッピング設定

 グローバルIPアドレスからのアクセスをRaspberry Piに中継するようにします。ルーターの管理画面から、ポートマッピング設定を開きます。
 LAN側ホストに設定したIPアドレスを入力します。HTTP、HTTPSを使用するので、ポートは80番と443番を指定します。
4.png
5.png

グローバルIPアドレスの確認

 診断君確認くん+(Plus)を利用して、自分契約回線のグローバルIPアドレス、リモートホストを確認します。

Webページにアクセス

 ポケットWiFi、Wi2 300などのネットワークサービス、スマホ、テザリングなどの、ルーター以外の回線から、接続し、ブラウザのアドレス欄に契約回線のグローバルIPアドレスorリモートホストアドレスを入力して、アップロードor作成したHTMLファイルを表示できれば成功です。

さいごに

 ダイナミックDNSを使用してドメインを取得することによって、本格的にWebページを公開することができます。また、Let's Encryptを利用して公開鍵を取得することによって、SSL/TSLを利用することができます。
 auひかりを使用していると、よほどのことがない限り、グローバルIPアドレスが変化がありません。なので、auひかりを使用している人は、無理にダイナミックDNSを使用しなくても良いと思いますが、公開するときにリモートホストアドレスだとわかりにくいので、ダイナミックDNSを利用してドメインを取得(無料or有料)するようにした方が良いと思います。

28
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?