CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
Apache Zeppelinは、インタラクティブなデータの取り込み、発見、分析、視覚化のためのWebベースのオープンソースノートブックおよびコラボレーションツールです。Zeppelinは、Apache Spark、SQL、R、Elasticsearchなど、20以上の言語をサポートしています。Apache Zeppelinを使用すると、美しいデータ駆動型ドキュメントを作成し、分析の結果を確認できます。
このチュートリアルではzeppelin.example.com
、Vultrインスタンスを指すドメイン名としてを使用 します。例のドメイン名をすべて実際のドメイン名に置き換えてください。
How to Update Ubuntu 16.04のガイドを使用してベースシステムを更新します 。システムが更新されたら、Javaのインストールに進みます。
Apache ZeppelinはJavaで記述されているため、JDKが機能する必要があります。Oracle Java 8のUbuntuリポジトリを追加します。
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Oracle Javaをインストールします。
sudo apt -y install oracle-java8-installer
バージョンを確認します。
java -version
次の出力が表示されます。
user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
次のパッケージをインストールして、Javaのデフォルトパスを設定します。
sudo apt -y install oracle-java8-set-default
がJAVA_HOME
実行されていることを確認できます。
echo $JAVA_HOME
見えます。
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
出力がまったく表示されない場合は、現在のシェルからログアウトして、再度ログインする必要があります。
Apache Zeppelinは、すべての依存関係をバイナリファイルとともに出荷するため、Java以外のものをインストールする必要はありません。システムにZeppelinバイナリをダウンロードします。Zeppelinのダウンロードページで、アプリケーションの最新バージョンをいつでも見つけることが できます。
wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz
アーカイブを抽出します。
sudo tar xf zeppelin-*-bin-all.tgz -C /opt
上記のコマンドは、アーカイブをに抽出します/opt/zeppelin-0.7.3-bin-all
。便宜上、ディレクトリの名前を変更します。
sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin
Apache Zeppelinがインストールされました。アプリケーションはすぐに開始できますが、リッスンするlocalhost
だけなので、アクセスできなくなります。Apache Zeppelinをサービスとして構成します。また、Nginxをリバースプロキシとして構成します。
このステップでは、Zeppelinアプリケーション用のSystemdユニットファイルを設定します。これにより、システムの再起動や障害時にアプリケーションプロセスが自動的に開始されます。
セキュリティ上の理由から、Zeppelinプロセスを実行するための非特権ユーザーを作成します。
sudo useradd -d /opt/zeppelin -s /bin/false zeppelin
新しく作成したZeppelinユーザーにファイルの所有権を提供します。
sudo chown -R zeppelin:zeppelin /opt/zeppelin
新しいSystemdサービスユニットファイルを作成します。
sudo nano /etc/systemd/system/zeppelin.service
ファイルに以下を入力します。
[Unit]
Description=Zeppelin service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/zeppelin/bin/zeppelin-daemon.sh start
ExecStop=/opt/zeppelin/bin/zeppelin-daemon.sh stop
ExecReload=/opt/zeppelin/bin/zeppelin-daemon.sh reload
User=zeppelin
Group=zeppelin
Restart=always
[Install]
WantedBy=multi-user.target
アプリケーションを起動します。
sudo systemctl start zeppelin
起動時にZeppelinサービスを自動的に開始できるようにします。
sudo systemctl enable zeppelin
サービスが実行されていることを確認するには、次を実行します。
sudo systemctl status zeppelin
デフォルトでは、Zeppelinサーバーはlocalhost
ポートでリッスン します 8080
。Nginxをリバースプロキシとして使用して、標準HTTP
およびHTTPS
ポート経由でアプリケーションにアクセスできるように し ます。Let's Encryptの無料SSL CAで生成されたSSLを使用するようにNginxを構成します。
Nginxをインストールします。
sudo apt -y install nginx
Nginxを起動し、起動時に自動的に起動するようにします。
sudo systemctl start nginx
sudo systemctl enable nginx
Certbotリポジトリを追加します。
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Let's Encrypt CAのクライアントアプリケーションであるCertbotをインストールします。
sudo apt -y install certbot
注: Let's Encrypt CAから証明書を取得するには、証明書を生成するドメインをサーバーに向ける必要があります。そうでない場合は、ドメインのDNSレコードに必要な変更を加え、DNSが伝播するのを待ってから、証明書要求を再度行ってください。証明書ボットは、証明書を提供する前にドメイン認証局をチェックします。
SSL証明書を生成します。
sudo certbot certonly --webroot -w /var/www/html -d zeppelin.example.com
生成された証明書は、おそらくに保存され /etc/letsencrypt/live/zeppelin.example.com/
ます。SSL証明書はとして保存され fullchain.pem
、秘密鍵はとして保存され privkey.pem
ます。
Let's Encrypt証明書は90日で期限切れになるため、cronジョブを使用して証明書の自動更新を設定することをお勧めします。
cronジョブファイルを開きます。
sudo crontab -e
ファイルの最後に次の行を追加します。
30 5 * * * /usr/bin/certbot renew --quiet
上記のcronジョブは、毎日午前5時30分に実行されます。証明書の有効期限が切れる場合、証明書は自動的に更新されます。
Zeppelinサイト用の新しいサーバーブロックファイルを作成します。
sudo nano /etc/nginx/sites-available/zeppelin
ファイルに入力します。
upstream zeppelin {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name zeppelin.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name zeppelin.example.com;
ssl_certificate /etc/letsencrypt/live/zeppelin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zeppelin.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/zeppelin.access.log;
location / {
proxy_pass http://zeppelin;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
}
location /ws {
proxy_pass http://zeppelin/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
構成ファイルをアクティブにします。
sudo ln -s /etc/nginx/sites-available/zeppelin /etc/nginx/sites-enabled/zeppelin
Nginxを再起動して、変更を有効にします。
sudo systemctl restart nginx zeppelin
Zeppelinは次のアドレスでアクセスできるようになりました。
https://zeppelin.example.com
デフォルトでは、認証は有効になっていないため、アプリケーションを直接使用できます。
アプリケーションには誰でもアクセスできるため、作成したノートブックにも誰でもアクセスできます。認証されたユーザーのみがアプリケーションにアクセスできるように、匿名アクセスを無効にして認証を有効にすることが非常に重要です。
デフォルトの匿名アクセスを無効にするには、構成ファイルテンプレートをライブの場所にコピーします。
cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml
構成ファイルを編集します。
sudo nano conf/zeppelin-site.xml
ファイル内で次の行を見つけます。
<property>
<name>zeppelin.anonymous.allowed</name>
<value>true</value>
値をfalse
に変更して 、匿名アクセスを無効にします。
匿名アクセスを無効にしたので、特権ユーザーがログインできるように、何らかの認証メカニズムを有効にする必要があります。ApacheZeppelinはApache Shiro認証を使用します。Shiro構成ファイルをコピーします。
sudo cp conf/shiro.ini.template conf/shiro.ini
構成ファイルを編集します。
sudo nano conf/shiro.ini
ファイル内で次の行を見つけます。
[users]
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
リストには、ユーザーのユーザー名、パスワード、およびロールが含まれています。ここでは、admin
およびのみを使用 し user1
ます。変更のパスワード admin
と user1
、それらをコメントすることにより、他のユーザーを無効にします。ユーザー名とユーザーの役割を変更することもできます。Apache Shiroのユーザーとロールの詳細については、Shiro承認ガイドをご覧ください。
パスワードを変更すると、コードブロックは次のようになります。
[users]
admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2
次に、ツェッペリンを再起動して変更を適用します。
sudo systemctl restart zeppelin
認証が有効になり、Shiro構成ファイルに設定されているユーザー名とパスワードを使用してログインできるようになります。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。