Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第8回 社内勉強会 「サーバーを構築してWebページを公開してみよう」
Search
Wemotion, Inc
March 04, 2023
Technology
0
160
第8回 社内勉強会 「サーバーを構築してWebページを公開してみよう」
https://github.com/wemotion-inc/nginx-sample
Wemotion, Inc
March 04, 2023
Tweet
Share
More Decks by Wemotion, Inc
See All by Wemotion, Inc
第10回 社内勉強会「GPT x Embeddingで質疑応答を試す」
wemotion
0
77
第9回 社内勉強会「ChatGPTを使い倒そう」
wemotion
0
230
第7回 社内勉強会 「REST APIを作ってみよう」
wemotion
0
140
第5回 社内勉強会 「設計 後編」
wemotion
0
100
第4回 社内勉強会 「設計 前編」
wemotion
0
150
第3回 社内勉強会 「要件定義 後編」
wemotion
1
160
第2回 社内勉強会 「要件定義 前編」
wemotion
1
320
第1回 社内勉強会 「セキュアプログラミング」
wemotion
0
260
Other Decks in Technology
See All in Technology
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
460
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
350
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
480
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.2k
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
2
210
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
120
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
890
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
「Linux」という言葉が指すもの
sat
PRO
4
140
Bedrock で検索エージェントを再現しようとした話
ny7760
2
120
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
65k
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
440
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Fireside Chat
paigeccino
39
3.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building an army of robots
kneath
306
46k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Speed Design
sergeychernyshev
32
1.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Visualization
eitanlees
148
16k
Transcript
サーバーを構築して Webページを公開してみよう 第8回 社内勉強会 2023/03/04
SSH接続
SSHとはSecure Shellの略で、 リモートのコンピューターと通信するためのプロトコルです。 認証の仕組みは「パスワード認証方式」と「公開鍵認証方式」の2種類あり、 設定の難易度はパスワード認証方式の方が簡単ですが、セキュリティ的には 公開鍵認証方式の方が安全となります。 sshとは
OS標準のクライアント Windows: PowerShell / Mac: Terminal サーバーへの接続方法 ssh {UserName}@{HostName}
-p {Port} UserName: rootなど接続時のユーザーネーム HostName: 接続サーバーのIPアドレス等 Port: 接続ポートが指定されている場合は-pでポート指定 sshの使い方 例 ssh
[email protected]
ポートとはネットワーク接続された機器に出入りする際の接続口で、 各ポートには番号が割り振られている。 代表的なポート Portとは Port番号 用途 80 HTTPで使用されることが多(ブラウザから
httpアクセス) 443 HTTPSで使用されることが多い(ブラウザから httpsアクセス) 20 FTP データ転送で使用されることが多い
サーバーのスペック - IP: 各自違います - CPU: 1Core - メモリ: 512MB
- SSD: 30GB - OS: CentOS Stream9 - rootパスワード: 各自違います ハンズオンで使用するサーバー ConohaVPSを使用 時間課金で1,000円弱/月〜 参考: https://www.conoha.jp/vps/
サーバーでの作業
サーバーを構築してWebページを公開し、 ブラウザからhttpでアクセス出来るようPort解放を行う 1. SSHでサーバーに入る 2. Nginxのインストール 3. Nginxの設定 4.
公開するページのHTMLをローカルPCからサーバーに転送(scp) 5. httpポート解放 6. ブラウザからのアクセス確認 サーバーでの作業概要
付与しているサーバーのIPを使用し、rootユーザーでSSH接続してください。 ssh root@IPAddress 接続が成功しているか確認する際は、 hostname コマンドがオススメです。 実行してサーバーIPが表示されれば接続成功となります。
hostname SSHでサーバーに入る ※ 実務で使用する際は、 rootユーザーの認証, パスワード認証は禁止し、 ssh時には専用ユーザー&公開鍵での認証を推奨します
Nginxは現在最も使用されているOSSのWebサーバーです。 WebサーバーではApacheも有名でそれぞれに得意不得意があります。 ※ Webサーバーとは、リクエストに応じてデータをレスポンスするサーバー Nginxとは 公式:
https://nginx.org/en/ 日本公式: https://www.nginx.co.jp/
CentOSでは一般にパッケージインストールに yum コマンドを使用します。 必要なパッケージのインストール yum install yum-utils yum install
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 確認されたら y を入力してEnter Nginxのインストール その1 ※ サーバーでの作用になります
vimでNginxインストール用の定義を作成します。 vi /etc/yum.repos.d/nginx.rep o 記載内容: https://github.com/wemotion-inc/nginx-sample/blob/main/nginx.repo
vimの操作方法 編集方法: i を押すとINSERTモードで編集可能になります 保存方法: : を押してコマンドモードにし、 wq と入力してEnterで保存して終了 Nginxのインストール その2 ※ サーバーでの作用になります
Nginxをインストールする yum-config-manager --enable nginx yum install nginx バージョンの確認(バージョンが表示されればインストール成功) nginx
-version Nginxのインストール その3 ※ サーバーでの作用になります
サーバー再起動時にも自動で起動されるようにする systemctl enable nginx Nginxの起動 systemctl start nginx
停止させる場合は stop / 起動状態の確認は status Nginxのインストール その4 ※ サーバーでの作用になります
デフォルトの設定内容を確認 cat /etc/nginx/nginx.conf http中のserver設定を見ると listen: 80ポート root: リクエスト時に参照するルートディレクトリ(公開ファイルの配置場所)
Nginxの設定 ※ サーバーでの作用になります
sshで接続したサーバーから接続解除する際は、 exit で接続解除しローカルに戻ることが可能です。 公開するHTMLを用意 https://github.com/wemotion-inc/nginx-sample/blob/main/index.html 上記のHTMLを index.html でローカルPCのDesktopに保存します。 サーバーから接続解除し、公開するHTMLを用意
※ ローカルでの作用になります
ローカルとサーバーでファイルをやりとりする場合は、 一般的には scp コマンドを使用します。 使用方法 scp {FileName} {UserName}@{HostName}:{FilePath}
例(実行前に cd ~/Desktop でDesktopに移動してください) scp index.html
[email protected]
:/root HTMLをサーバーに転送 ※ ローカルでの作用になります
HTMLの転送が完了したら再び ssh でサーバーに接続し、 ファイルが転送されているか確認しましょう。 ls コマンドで index.html が表示されれば成功しています。
確認ができたらNginxのルートディレクトリに index.html をコピーします cp index.html /usr/share/nginx/html/index.html ※ デフォルトのhtmlをoverwriteするため y で回答 サーバーでファイル確認 ※ サーバーでの作用になります
ブラウザのURLバーにIPアドレスをhttpで入力してアクセスしてみましょう! http://IPAddress ポート解放をしていないため、 画像のようにアクセスが失敗します。 ページの確認 ※ ローカルでの作用になります
CentOS 9では一般的には firewall-cmd を使用してPortの管理を行います。 解放状況の確認 firewall-cmd --list-all portsが設定されていないことが分かります。
解放状況の確認 ※ サーバーでの作用になります
以下のコマンドでhttpで80ポートを解放し、reloadで反映します。 firewall-cmd --add-port=80/tcp --zone=public --permanent firewall-cmd --reload 設定確認で 80/tcp
が追加されています。 firewall-cmd --list-all httpポートの解放 ※ サーバーでの作用になります
再度ブラウザのURLバーにIPアドレスをhttpで入力し、 アクセスしてみましょう! http://IPAddress ページが表示されたら成功です! 本日扱った主要技術の復習を各自行いましょう。 再度ページの確認 ※ ローカルでの作用になります
None