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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Wemotion, Inc
March 04, 2023
Technology
160
0
Share
第8回 社内勉強会 「サーバーを構築してWebページを公開してみよう」
https://github.com/wemotion-inc/nginx-sample
Wemotion, Inc
March 04, 2023
More Decks by Wemotion, Inc
See All by Wemotion, Inc
第10回 社内勉強会「GPT x Embeddingで質疑応答を試す」
wemotion
0
81
第9回 社内勉強会「ChatGPTを使い倒そう」
wemotion
0
230
第7回 社内勉強会 「REST APIを作ってみよう」
wemotion
0
150
第5回 社内勉強会 「設計 後編」
wemotion
0
110
第4回 社内勉強会 「設計 前編」
wemotion
0
150
第3回 社内勉強会 「要件定義 後編」
wemotion
1
160
第2回 社内勉強会 「要件定義 前編」
wemotion
1
330
第1回 社内勉強会 「セキュアプログラミング」
wemotion
0
260
Other Decks in Technology
See All in Technology
The essence of decision-making lies in primary data
kaminashi
0
190
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
130
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
120
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
210
互換性のある(らしい)DBへの移行など考えるにあたってたいへんざっくり
sejima
PRO
0
470
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
OCI技術資料 : 証明書サービス概要
ocise
1
7.1k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
540
MCPで決済に楽にする
mu7889yoon
0
160
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
190
20260326_AIDD事例紹介_ULSC.pdf
findy_eventslides
0
250
DMBOKを使ってレバレジーズのデータマネジメントを評価した
leveragestech
0
490
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Automating Front-end Workflow
addyosmani
1370
200k
Fireside Chat
paigeccino
42
3.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
440
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Code Reviewing Like a Champion
maltzj
528
40k
A Tale of Four Properties
chriscoyier
163
24k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
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