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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
AIコーディング時代における、ソフトウェアサプライチェーン攻撃に対する防衛術(簡易版)
soysoysoyb
0
140
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
150
音声言語モデル手法に関する発表の紹介
kzinmr
0
140
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
160
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
240
Revisiting [CLS] and Patch Token Interaction in Vision Transformers
yu4u
0
400
AI: Making Admin and Users, Lives Better
kbmsg
0
120
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
140
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
800
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
360
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.5k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.4k
Featured
See All Featured
Scaling GitHub
holman
464
140k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
110
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
170
The untapped power of vector embeddings
frankvandijk
2
1.7k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Building AI with AI
inesmontani
PRO
1
910
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
170
Utilizing Notion as your number one productivity tool
mfonobong
4
290
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
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