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
140
第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
64
第9回 社内勉強会「ChatGPTを使い倒そう」
wemotion
0
220
第7回 社内勉強会 「REST APIを作ってみよう」
wemotion
0
130
第5回 社内勉強会 「設計 後編」
wemotion
0
99
第4回 社内勉強会 「設計 前編」
wemotion
0
140
第3回 社内勉強会 「要件定義 後編」
wemotion
1
130
第2回 社内勉強会 「要件定義 前編」
wemotion
1
280
第1回 社内勉強会 「セキュアプログラミング」
wemotion
0
250
Other Decks in Technology
See All in Technology
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
いざ、BSC討伐の旅
nikinusu
2
780
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
Lambdaと地方とコミュニティ
miu_crescent
2
370
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
We Have a Design System, Now What?
morganepeng
50
7.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
How to train your dragon (web standard)
notwaldorf
88
5.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Music & Morning Musume
bryan
46
6.2k
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