一. NGINX とブラウザ、ウェブページの関係#
nginxはウェブサーバーです
html言語でウェブページを作成します
cd /usr/local/nginx html
cd html/ (注:ウェブページの保存パス)
考察:
1. ウェブページとnginxの関係
nginxはウェブページをブラウザに送信します
2. ブラウザとnginxの関係
ブラウザはnginxにウェブページを要求します
nginxはウェブページをブラウザに送信します
3. ブラウザとウェブページの関係
ブラウザはウェブページのhtml、js、cssコードを理解し、効果をレンダリングします
web:サイト
フォーム情報はデータベースに保存され、nginxは静的ページにのみアクセスでき、Pythonが情報をデータベースに送信します。Python——》flask webバックエンド——》userテーブル
nginxが動作しているかどうかを確認するには?
1. プロセスを確認
ps aux|grep nginx
2. ポートを確認
netstat -anplut
プロジェクトチーム:
1. フロントエンド
2. バックエンド
3. 運用
4. テスト
5. DBA
6. プロジェクトマネージャー
cd /usr/local/nginx/html/ ウェブページを置く
rz はファイルしか転送できず、フォルダは転送できません
二。クラウドサーバー ssh ログイン - NGINX のインストール - ウェブページのアップロード#
自分の仮想マシンのlinuxシステムでは?(自分のウェブページをlinuxシステムにアップロードするにはどうすればよいですか)
Xshellで接続します
自分のクラウドサーバーに、自分のウェブページをクラウドサーバーにアップロードするにはどうすればよいですか?
1.xshell --》パブリックIP(クラウドサーバーのパブリックIP)106.54.83.86 (注:xshell接続)
ユーザー名root --》パスワードは初期パスワードです (注:passwdでパスワードを変更)
2. 自分でnginxをコンパイルしてインストールします--》スクリプトインストールをお勧めします-->nginxを起動します
3. 自分のウェブページをnginxのhtmlディレクトリにアップロードします (注:scpまたはWindowsにアップロード【中間プロセス】)
4. 106.54.83.86にアクセスします
(注)スクリプト:
# cat onekey_install_nginx_v2.sh
#!/bin/bash
#1. nginxソフトウェアパッケージをダウンロード
mkdir -p /nginx2
cd /nginx2
curl -O http://nginx.org/download/nginx-1.19.2.tar.gz
#2. 解凍し、フォルダに入る
tar xf nginx-1.19.2.tar.gz
cd nginx-1.19.2
#3. コンパイル前の設定
#新しいユーザーsanchuang9を作成
useradd sanchuang9
#nginxが必要とするgccとpcre-develパッケージをインストールし、ソフトウェアの依存関係を解決します
yum install gcc make pcre-devel zlib-devel -y
#nginxを設定し、インストールパスとnginxを起動するユーザー名を指定します
./configure --prefix=/usr/local/nginx2 --user=sanchuang9
#4. コンパイル
make
#5. コンパイルしてインストール
make install
#6. ファイアウォールサービスを停止し、起動時に開始しないように設定します
service firewalld stop
systemctl disable firewalld
#7. PATH変数を変更し、nginxを直接使用できるようにします
echo "PATH=$PATH:/usr/local/nginx2/sbin" >>/root/.bashrc
ip add はプライベートIPを確認します
scp リモートコピー
/usr/local/nginx/sbin/nginx でnginxを起動します
ps aux|grep nginx でnginxプロセスを確認します
自分のウェブサイトを作成する
1. クラウドサーバーを購入--》アリババクラウドまたはテンセントクラウド、ファーウェイクラウド、アマゾンの無料トライアル --》学生版 10元/月
2. ドメイン名を購入 5元/年
クラウドサーバーを購入した場所でドメイン名を購入すると、登録が便利です
3. 登録
登録しないと、ドメイン名を正常に使用してアクセスできません
cat /etc/centos-release でcentosのバージョンを確認します
三。圧縮コマンド - xz-gzip-bzip2-zip-tar-NGINX サーバーのダウンロード機能をサポートする設定#
主要内容:圧縮コマンド - tar(重点) ファイルとフォルダを圧縮します
==tar -czf -->.tar.gz==
==tar cjf -->.tar.bz2==
==tar cJf -->.tar.xz==
==tar tf \*.tar.\*==
==tar xf *.tar.*==
# tar xf boot_log_passwd.tar.gz ==-C== /zhanghuayou/
圧縮コマンド - xz-gzip-bzip2-zip:すべてファイルのみを圧縮できます
zip -->.zip
gzip -->.gz
xz --->.xz
bzip2 -->.bz2
zip yum install zip unzip -y
==zip chenpeng.txt.zip chenpeng.txt==
==unzip passwd.zip==
gzip
==gzip hosts==
==gunzip hosts.gz==
==zcat messages.gz==
xz
==xz hosts==
==unxz hosts.xz==
==xzcat messages.xz==
bzip2 yum install bzip2 -y
==bzip2 passwd==
==bunzip2 passwd.bz2==
==bzcat passwd.bz2==
NGINX サーバーのダウンロード機能をサポートする設定
圧縮コマンド - xz-gzip-bzip2-zip-tar#
なぜ圧縮パッケージを作成するのですか?
バックアップ時に、スペースを節約できます
ネットワーク転送時に、時間を節約できます
Windowsにはどのような解凍ソフトがありますか?
winrar
7z
好压
快压
Zip
Windowsの.rar圧縮ファイルをLinuxに転送した場合、開くことができますか?
sc.rar (注:rarは解凍できません、Linuxにはこのソフトがないため、インストールしなければなりません)
sc.zip -->Linuxはデフォルトでサポートしています
WindowsはLinuxのすべての圧縮ファイルを解凍できます
nginx-1.19.2.tar.gz Linuxの圧縮ファイル
圧縮ファイルは赤色で、実行可能ファイルは緑色です
zip#
zip
zip はファイルのみを圧縮でき、フォルダを圧縮することはできません
yum install zip unzip -y ==(注:zip はインストールが必要です)==
zip 圧縮パッケージを作成します
unzip 解凍します
# ==zip chenpeng.txt.zip chenpeng.txt== (注:== 使用法 ==)
圧縮後のファイル 元のファイル
[root@sanchuang-linux lianxi]# zip passwd.zip passwd
adding: passwd (deflated 61%) (注圧縮、空気を抜く)
ll -h サイズを確認します
passwd.zip
# ==unzip passwd.zip 解凍 ==
Archive: passwd.zip
inflating: passwd
# ls
passwd passwd.zip
==zip の欠点:元のファイルと新しいファイルがあります ==
gzip#
gzip
gzip は元のファイルを直接圧縮でき、拡張子は.gz (注:zip との違い、zip のアップグレード版として理解してください)
==(注:gzip はインストール不要です)==
hosts passwd passwd.zip
# ==gzip hosts (使用法)== gzip + 元のファイル
# ls
hosts.gz passwd passwd.zip
# ==gunzip hosts.gz (解凍)==
# ==zcat messages.gz (圧縮ファイルを表示)==
xz#
xz ==(注:xz はインストール不要です)==
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.11.tar.xz
# ==xz hosts (使用法)==
# ls
hosts.xz passwd passwd.zip
# ==unxz hosts.xz (解凍)==
# ls
hosts passwd passwd.zip
# ==xzcat messages.xz (圧縮ファイルを表示)==
gz と xz を比較すると、xz の方が効果的です
xz の使用をお勧めします
bzip2#
bzip2 ==(注:bzip2 はインストールが必要です)==
yum install bzip2 -y
# ==bzip2 passwd (使用法)==
passwd.bz2
# ==bunzip2 passwd.bz2 (解凍)==
passwd
# ==bzcat passwd.bz2 (圧縮ファイルを表示)==
zip -->.zip
gzip -->.gz
xz --->.xz
bzip2 -->.bz2
tar#
tar -->gzip,xz,bzip2を統合しました
tarball -->tarコマンドで作成された圧縮パッケージ--》アーカイブファイル--》圧縮ファイル--》1つの圧縮パッケージに多くのファイルを含めることができます
tarはファイルとフォルダを圧縮できます
Compressed TAR Archive [compressed圧縮の archiveアーカイブ]
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.11.tar.xz
http://nginx.org/download/nginx-1.19.2.tar.gz
mysql-8.0.21-linux-glibc2.12-i686.tar.xz
https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.46.tar.bz2
NGINX サーバーのダウンロード機能をサポートする設定#
(autoindex auto 自動 index インデックス)
# cd /usr/local/nginx/conf/ ==(注:設定ディレクトリ)==
#
# vim nginx.conf ==(注 2:設定ファイルを変更します)autoindex on;この行を追加します ==
location / {
root html; (注 4:nginx のウェブページの保存ディレクトリを html に指定します --》ウェブページのルートディレクトリ)
index index.html index.htm; (注 5:nginx サーバーがサポートするホームページを index.html または index.htm に設定します。index.html の優先度が高く、index.html がない場合は index.htm を探します)
==autoindex on; (注 3:設定を追加し、nginx がフォルダ内の内容を表示できるようにします)==
}
# /usr/local/nginx/sbin/nginx -s reload nginx を再読み込みします
圧縮パッケージをアップロード
四. tar コマンド#
tar コマンド
用途:アーカイブファイルを作成する、アーカイブファイルを解放する
フォーマット:tar [オプション]... アーカイブファイル名 ソースファイルまたはディレクトリ
tar [オプション]... アーカイブファイル名 [-C 目標ディレクトリ]
よく使われるコマンドオプション
-c:.tar 形式のパッケージファイルを作成する create
-x:.tar 形式のパッケージファイルを解凍する extract 抽出
-v:詳細情報を出力する verbose 冗長
-f:アーカイブファイルを使用することを示す file
-t:パッケージ内のファイルをリスト表示する list
よく使われるコマンドオプション
-C:解凍時に指定された目標フォルダに入る
==-z:gzip プログラムを呼び出して圧縮または解凍する ==
==-j:bzip2 プログラムを呼び出して圧縮または解凍する ==
==-J:xz プログラムを呼び出して圧縮または解凍する ==
=== ==(クラシックな組み合わせ)==
== 圧縮パッケージを作成する ==
==tar -czf -->.tar.gz==
==tar cjf -->.tar.bz2==
==tar cJf -->.tar.xz==
== 指定されたパスに圧縮パッケージを作成する 絶対パスを使用 ==
# tar czf /zhanghuayou/passwd.tar.gz ==/etc/passwd==
tar: メンバー名から先頭の “/” を削除します
== 圧縮パッケージの内容を確認する ==
==tar tf \*.tar.\*==
== 解凍 --》デフォルトで現在のディレクトリに解凍 ==
==tar xf *.tar.*==
==-C 指定されたパスに解凍 ==
# tar xf boot_log_passwd.tar.gz ==-C== /zhanghuayou/
# mkdir tar
# cd tar
# ls
# tar czf passwd.tar.gz ==/etc/passwd==
==tar: メンバー名から先頭の “/” を削除します ==
# ls
passwd.tar.gz
# tar tf passwd.tar.gz
==etc/passwd (注:/ がなくなりました)==
[root@sanchuang-linux tar]# ls
passwd.tar.gz
# tar xf passwd.tar.gz
# ls
==etc== passwd.tar.gz ==(注 2:解凍後は etc というフォルダができ、"/" はありません)==
# cd etc/
# ls
passwd
#
== フォルダに圧縮パッケージを作成する ==
# tar cJf boot.tar.xz /boot
# tar czf boot.tar.gz /boot
# tar cjf boot.tar.bz2 /boot
# ==time tar czf boot.tar.gz/boot (注:圧縮コマンドの前に time を付けると時間がわかります)==
tar: メンバー名から先頭の “/” を削除します
real 0m8.467s
user 0m6.851s
sys 0m2.226s
#
==(注:↓接 v でプロセスを確認し、情報を出力します。一般的にスクリプトを書くときは v を付けません)==
# tar czvf boot_log_passwd.tar.gz /boot /var/log /etc/passwd ==(注:ファイルとディレクトリ)==
# tar czf boot_log_passwd.tar.gz /boot /var/log /etc/passwd
tar: メンバー名から先頭の “/” を削除します
tar: ハードリンクのターゲットから先頭の “/” を削除します
#
== 後でパッケージ化するファイルが圧縮ファイルの名前と同じ場合、上書きされます ==
五。圧縮練習 - バックアップスクリプト#
主要内容:
複数のファイルを除外する排除 ==(難点)==
# tar ==--exclude===/boot/{grub2,efi,loader} ==-czvf== no_grub_boot.tar.gz /boot
# ==date +%Y%m%d%H%M%S==
20200924170954
現在の日付を 10 日後に進める
# ==date -d "10 days"==
コマンドの実行結果を変数に代入するには
== 方法 1:==
ctime=$(date +%F)
== 方法 2:バッククォート ==
ctime=`date +%F`
コマンドのネスト
== 時間を設定 -s==
# ==date -s '2020-10-10' (注:時間を調整)==
# date -s =='2020-10-10 9:53:00' (注:時、分、秒を指定)==
# ==cal カレンダーを表示 == calendar(日付)
# ==cal 2020== 2020 年のカレンダーを表示
圧縮練習:
1. Windowsでwinrarソフトを使用して2つのファイルを圧縮します。1つは.rar形式のファイル、もう1つは.zip形式のファイルです。具体的にどのファイルを圧縮するかは自分で定義します。
2. ファイルをLinuxシステムの/lianxiディレクトリに転送し、.zipファイルを解凍してみます。
# unzip
3. /etc/passwdファイルを/lianxiディレクトリにコピーし、/lianxiディレクトリのpasswdファイルをpasswd.xzに圧縮します。
# cp /etc/passwd . # xz passwd
4. /etc/ssh/sshd_configファイルを/lianxiディレクトリにコピーし、sshd_config.gzとして圧縮します。
# cp /etc/ssh/sshd_config . # gzip sshd_config
5. passwd.xzの内容を確認し、sshd_config.gzの内容を確認します。
# xzcat passwd.xz # zcat sshd_config.gz
6. 新しいフォルダ/backup_scを作成し、/lianxi下のpasswd.xzとsshd_config.gzを/backup_scディレクトリにコピーします。
7. /backup_scディレクトリに移動し、passwd.xzとsshd_config.gzファイルを解凍します。
8. /lianxi下のsshd_config.gzをWindowsシステムに転送し、解凍できるか確認します。
練習 8:
1. /lianxi 下に tar というディレクトリを作成します。
# mkdir /lianxi/tar
2. tar ディレクトリに移動し、/etc/hosts ファイルと /etc/passwd を tar ディレクトリにコピーします。
# cd /lianxi/tar # cp /etc/hosts . # cp /etc/passwd .
3. /boot ディレクトリを tar ディレクトリにコピーします。
# cp /boot . -r
4. 現在のディレクトリの boot ディレクトリを圧縮し、/lianxi/tar ディレクトリに boot.tar.gz として保存します。
# tar czf boot.tar.gz boot
5. boot.tar.gz ファイルの内容を確認します。
# tar tf boot.tar.gz
6. hosts ファイルと passwd ファイルを host_passwd.tar.bz2 ファイルに圧縮します。
# tar cjf host_passwd.tar.bz2 hosts passwd
7. host_passwd.tar.bz2 ファイルの内容を確認します。
# tar tf host_passwd.tar.bz2
8. /boot/ ディレクトリと /etc/passwd、/var/log ディレクトリをバックアップし、/lianxi ディレクトリに boot_pw_log.tar.xz として保存します。
# tar cJf /lianxi/boot_pw_log.tar.xz /boot /etc/passwd /var/log
9. 新しい /bak ディレクトリを作成し、/lianxi ディレクトリの boot_pw_log.tar.xz を /bak ディレクトリに解凍します。
# mkdir -p /bak # tar xf boot_pw_log.tar.xz -C /bak
10. /boot ディレクトリの grub2 ディレクトリ以外のすべてのファイルを /bak ディレクトリに no-grub.tar.gz としてバックアップします。
tar czvf --exclude ==(難点)==
# tar ==--exclude=/boot/grub2 -czvf== no_grub_boot.tar.gz /boot
centos8 の (注:==--exclude=/boot/grub2 -czvf 前後に間違えないでください、grub2 は / を付けてはいけません、-czvf - は省略できません ==)
# tar ==--exclude=/boot/grub2 -czvf== no_grub_boot.tar.gz /boot
centos7 の
# tar czvf no_grub2_boot.tar.gz /boot ==--exclude=/boot/grub2==
複数のファイルを除外する排除 ==(難点)==
# tar ==--exclude===/boot/{grub2,efi,loader} ==-czvf== no_grub_boot.tar.gz /boot
(注:ディレクトリ構造 {} は複数を示します)
練習:
バックアップを実現するスクリプトを作成し、/var/logディレクトリ内のすべてのファイルを/bakディレクトリに保存します。ファイル名には当日の日時を含め、秒まで精度を持たせ、ファイル名は例:2013-6-6-2_30_20-log.tar.gzとします。同時に、/bakディレクトリ内の7日前のバックアップファイルを削除し、最近7日間のファイルのみを保持します。
需求分析:
== 年、月、日、時、分、秒 ==
== タイムスタンプ:年、月、日、時、分、秒 ==
現在の日付を取得する date
% Y 年 ==(注:年)==
% m 月 (01..12) ==(注:月)==
%M 分 (00..59) ==(注:分)==
% d 日 (例:01) ==(注:日)==
% H 時間 (00..23) ==(注:時間)==
% S 秒 (00..60) ==(注:秒)==
% F 完全な日付;% Y-% m-% d と同じ ==(注:年、月、日)==
# ==date +%Y%m%d%H%M%S==
20200924170954
# ==date +%Y-%m-%d%H%M%S==
2020-09-24171008
# ==date +%Y-%m-%d_%H_%M_%S==
2020-09-24_17_10_31
#
現在の日付を 10 日後に進める ==(時間を遅らせる)==
# ==date -d "10 days"==
2020 年 10 月 04 日 星期日 17:21:27 CST
# ==date -d 10days==
2020 年 10 月 04 日 星期日 17:21:37 CST
#
# ==date -d 10hours==
2020 年 09 月 25 日 星期五 03:22:13 CST
#
コマンドの実行結果を変数に代入するには
== 方法 1:$( ) (より良い、ネスト可能)==
ctime=$(date +%F)
== 方法 2:バッククォート (ネスト不可)==
ctime=`date +%F`
# ==ctime=$(date +%F)==
# echo $ctime
2020-09-24
# ==sctime=`date +%F`==
# echo $sctime
2020-09-24
#
# ==touch $(date +%F).txt==
# sg=zhanghuayou
# echo $sg
zhanghuayou
# echo $sg1
(注:この行の出力は空です)
# echo ==${sg}==1
zhanghuayou==1==
#
/bak ディレクトリ内の 7 日前のバックアップファイルを削除する
find /bak -type f -mtime +7 -name "*.tar.gz" -exec rm -rf {} ;
スクリプト名:
backup_log.sh
コマンドのネスト
# which mkdir
/usr/bin/mkdir
# rpm -qf /usr/bin/mkdir
coreutils-8.30-6.el8_1.1.x86_64
# softname===$(rpm -qf $(which mkdir)) (注:$( ) は良い、ネスト可能)==
# echo $softname
==coreutils-8.30-6.el8_1.1.x86_64==
# softname2===`rpm -qf `which mkdir``==
==rpm:未給出要查询的参数 ==
==mkdir: 操作数が不足しています ==
もう一度実行してみてください "mkdir --help" で詳細情報を取得します。
#
バックアップを実現するスクリプトを作成し、==/var/log ディレクトリ内のすべてのファイルを /bak ディレクトリに保存します。ファイル名には当日の日時を含め、秒まで精度を持たせ、ファイル名は例:2013-6-6-2_30_20-log.tar.gz とします。同時に、/bak ディレクトリ内の 7 日前のバックアップファイルを削除し、最近 7 日間のファイルのみを保持します。
== ファイル名から tar コマンドを使用することがわかります。cp ではなく ==
# mkdir /lianxi/9_25
# cd /lianxi/9_25
# vim backup_log.sh
#!/bin/bash
#現在の時間を取得し、秒まで精度を持たせます
ctime=$(date +%Y%m%d%H%M%S)
#バックアップ
mkdir -p /bak
tar czf /bak/${ctime}-log.tar.gz /var/log
#7 日前のバックアップファイルを削除し、最近の 7 日間のファイルのみを保持します
find /bak -type f -mtime +7 ==-name “*log.tar.gz”== -exec rm -rf {} ;
7 日前のファイルを削除したことを確認するには?
答え:時間を調整します
== 時間を設定 -s==
# date
2020 年 09 月 25 日 星期五 09:53:18 CST
# ==date -s '2020-10-10' (注:時間を調整)==
2020 年 10 月 10 日 星期六 00:00:00 CST
#
# date -s =='2020-10-10 9:53:00' (注:時、分、秒を指定)==
2020 年 10 月 10 日 星期六 09:53:00 CST
#
# date -s '2020-9-25 9:55:00'
2020 年 09 月 25 日 星期五 09:55:00 CST
#
# ==cal カレンダーを表示 == calendar(日付)
# ==cal 2020== 2020 年のカレンダーを表示