SSH サーバーのパスワード不要のログイン、リバース プロキシ、ロード バランシング、動的および静的分離、ページ圧縮、クロスドメイン、Nginx 構成ファイル構文

1. SSH サーバーのパスワード不要のログイン: 公開キーと秘密キーを構成し、VScode 経由でサーバーに接続します。

成功した結果のプレビュー

例子:
成功以后可以通过以下命令直接的登录
ssh root@IP地址 -p 22
ssh [email protected] -p 22

画像の説明を追加してください

画像の説明を追加してください

ssh 経由でリモート サーバーにログインするたびにユーザー名とパスワードを入力するのは非常に面倒です。たとえば、次のようになります。

公開キーを使用すると、パスワードなしでリモート サーバーにログインできます。

ssh 用户名@192.168.xxx.xxx -p 22

最初のステップでは、ssh-keygen コマンドにより公開鍵と秘密鍵が生成されます。

1. 注: サーバー構成の変更 (root 以外のユーザーはスキップできます)

多くのサーバーでは、セキュリティ上の理由から、root パスワードなしでのログインが許可されていません。root パスワードなしでのログインが必要な場合は、サーバーの ssh 設定ファイルを変更する必要があります。企業サーバーの場合は、これを行わないでください

sudo vi /etc/ssh/sshd_config

次のパラメータを変更し、# 記号の前にある # 記号を削除します。

PermitRootLogin yes
PermitEmptyPasswords yes

次に、SSHサービスを再起動します

service sshd restart

2. 注意事項を完了したら、公開キーの生成プロセスに進むことができます。

以下の図に示すように、プロセス全体には 3 つのステップがあります。

画像の説明を追加してください
ここに画像の説明を挿入

最初のステップは、公開キーと秘密キーの保存パスを入力することです。

2 番目と 3 番目の手順は、秘密キーのパスワードを設定し、パスワードを確認することです。

**注: 公開キーを初めて生成する場合は、Enter キーを最後まで押して確認してください。**公開キーと秘密キーは、/Users/username/.ssh パスに自動的に生成されます。デフォルトの公開鍵ファイル名は id_rsa.pub、秘密鍵ファイル名は id_rsa です。

既存の公開キーを上書きしたくない場合は、最初のステップで保存パスを指定するだけです。

#生成id_rsa id_rsa.pub 一个公钥一个私钥
ssh-keygen -t rsa

#将公钥上传到服务器
ssh-copy-id root@< you ip addr >

#在服务器.ssh目录下创建认证文件authorized_keys,并将公钥写入authorized_keys
cat id_rsa.pub >> authorized_keys

#现在可通过 ssh root@< you ip addr > 直接登陆服务器


公開キーのパスまたはファイル名を手動で指定する場合は、次のように公開キーをサーバーの ~/.ssh ディレクトリに手動でアップロードする必要があります。

scp ~/.ssh/centos_id_rsa.pub root@< you ip addr >:~/.ssh

ssh-keygen の共通パラメータ

-t: 生成されたキーのタイプを指定し、デフォルトで SSH2d の rsa を使用します
-f: 生成されたキーのファイル名を指定し、id_rsa をサイレントにトレーニングします (秘密キー id_rsa、公開キー id_rsa.pub)
-P: 古いパスワードを提供します。空の意味no パスワードが必要
-N: 新しいパスワードを指定します。空はパスワードが必要ないことを意味します。
-b: キーの長さ (ビット) を指定します。RSA には最低 768 ビットが必要で、デフォルトは 2048 ビットです。DSA キーは 1024 ビットである必要があります。 (FIPS 1862 標準)
- C: 新しいコメントを入力します
-R hostname: hostname に属するすべてのキーを known_host ファイルから削除します (キー ファイルは、初回接続時に ~/.ssh ディレクトリに生成されます)

2 番目のステップでは、ssh-copy-id コマンドを使用して公開キーをリモート サーバーにコピーします。

ユーザー パスで次のコマンドを実行します。

ssh-copy-id -i .ssh/id_rsa.pub 用户名@192.168.xxx.xxx

注: 前の手順で別の公開キーのパスを指定した場合は、-i の後に指定した公開キーのパスを入力してください。

ここでは、公開キーをリモート サーバー上でログインするユーザー名と同期し、ユーザーがログインするときにのみ有効になるようにします。

基本的に、この手順では公開キーをサーバーの /home/[username]/.ssh/authorized_keys ファイルに追加します。手動でコピーすれば大丈夫ですが、面倒です。

3 番目のステップは、server.ssh/ の権限を確認することです。

上記の設定後、パスワードなしで直接ログインできるようになります。次のコマンドを実行します。

ssh 用户名@192.168.xxx.xxx

機能しない場合は、サーバーの .ssh/ ファイルの権限を確認する必要があります。ユーザーグループ権限に書き込み権限がある場合、公開鍵 ssh ログインは有効になりません。ユーザー グループの書き込み権限を削除する必要がある場合は、次のコマンドを使用します。

chmod g-w ./.ssh/

なぜこのような制限があるのでしょうか? 実は、よく考えてみればわかります。公開キーを使用してユーザー A にすぐにログインしたいためです。これを実現する方法は、A ユーザー ディレクトリのauthorized_keys に独自の公開キーを追加することです。この場合、同じユーザー グループ内のユーザー B にも .ssh/ パスへの書き込み権限がある場合、他のユーザーはユーザー B にログインし、ユーザー A のauthorized_keys を変更し、それに自分の公開キーを追加できます。 A ユーザーで直接ログインします。したがって、ここに抜け穴があります。

4 番目のステップは、ショートカット コマンドを構成することです。

今のところ、ログインするにはユーザー名とIPを入力する必要がありますが、これはまだ面倒です。ローカルの .ssh/config ファイルでクイック ログイン コマンドを構成できます。

次の形式の情報を構成ファイルの末尾に追加します。

Host [你能记住的名字]
 
Hostname [ip]
 
Port [端口]
 
User [登录用户名]

例えば:

設定ファイル

ローカルで SSH ログイン構成を作成する

cd ~/.ssh
cat >config <<EOF
    Host centos
    	Hostname	172.16.225.37
    	Port		22
    	User		root
    	IdentityFile	~/.ssh/centos_id_rsa
    Host centos
    	Hostname	172.16.225.37
    	Port		22
    	User		herff
    	IdentityFile	~/.ssh/centos_id_rsa
    EOF

- cenos ホスト エイリアス (ログイン用の IP を置き換えることができます。以下の効果のデモを参照してください)
- ホスト名 IP アドレスまたは URL (サーバー IP に置き換えます)
- ポート ポート (運用環境のポートは 22 にすることはできません。実際の状況) )
- ユーザー名を使用します。ローカル ユーザー名がリモート ユーザー名と一致しない場合は、
ローカル マシンの IdentityFile 公開キー パス (変更されたファイルに注意してください) の2 つを作成する必要があります。

設定が完了し、テスト結果が表示されました

ssh centos或ssh [email protected] -p 22
#➜  ~  ssh centos
#Last login: Sat Dec 11 17:16:06 2021 from gateway
#[root@centos7 ~]# 

完璧〜

2、Nginxの勉強メモ

1. ディレクトリ構造

  • conf設定ファイル
  • htmlデフォルトの構成ファイルの保存パス
  • sbinメインプログラムが実行されるディレクトリ

2. 構成

  • ブロックserverはサービスをリッスンします。リッスンする IP ドメイン名とポートを設定できます。
    • servernameマッチング順序は、前回のマッチングに記載されている場合は継続してマッチングしません 複数のドメイン名を設定可能
  • serverlocation一致するパスに対応するブロック内に設定できます
server {
	listen 80; # 监听端口号
	server_name localhost;  # 主机名
	location / {  # 匹配路径
		root html; 文件根目录
		index index.html index.htm; # 默认页名称	
	}
	error_page 500 502 503 504 /50x.html; # 报错编码对应页面
		location = /50x.html {
		root html;
	}
}

2.1 位置マッチング

  • /すべてのリクエスト
  • =完全に一致
  • ~通常の一致、大文字と小文字を区別する
  • ~*正規、大文字と小文字を区別しない
  • ^~非正規試合
  • "= 一致 > "^~" 一致 > 通常の一致 > 通常 (最大プレフィックス一致)

3. リバースプロキシ

location / {
	proxy_pass http://127.0.0.1:8080;
}

4. 負荷分散

  • デフォルトでは、ポーリング方式が使用され、1 つずつ転送されます。
upstream gainfortune {
    server 192.168.3.18:8080;
    server 192.168.3.125:8080;
    server 192.168.3.123:8080;
    server 192.168.3.178:8080;
}

server {

	# ...
	
    location / {
    	# 反向代理
        proxy_pass http://gainfortune;
    }
}

4.1 重量

  • バックグラウンドサーバーのパフォーマンスが不均一な状況に適した重みを設定します。
  • weight値が大きいほど重みが高くなります
  • down現在のサービスは一時的にご利用いただけません
  • backup他のサービスがダウンしているか混雑している場合は、次のサイトにアクセスしてください
upstream gainfortune {
    server 192.168.3.18:8080 weight=3;
    server 192.168.3.125:8080 weight=1 down;
    server 192.168.3.123:8080 weight=5;
    server 192.168.3.178:8080 weight=1 backup;
}

5. 静的と動的の分離

  • 動的リクエストをバックグラウンドサーバーにプロキシし、静的ファイルリクエストをプロキシなしで実行します。
  • 照合に使用されるlocation正規表現
# 动静分离
location ~*/(202109|202110|202111|css|fonts|images|js) {
    root /usr/local/nginx/static;
}

6. ページ圧縮

gzip on;
gzip_min_length 1k;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml image/jpg image/jpeg image/png;

7. クロスドメイン

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE;

8. Nginx 設定ファイルの構文

正規表現

location [ = | ~ | ~* | ^~ ] uri {
    
    

}
  • =: 正規表現を使用せずに URI を使用する前に、リクエスト文字列が URI と厳密に一致する必要があります。一致した場合、検索は停止され、リクエストはすぐに処理されます。
  • ~: URI に正規表現が含まれており、大文字と小文字が区別されることを示すために使用されます。
  • ~*: URI に正規表現が含まれており、大文字と小文字が区別されないことを示すために使用されます。
  • ^~: 正規表現を使用せずに URI を使用する前に、Nginx サーバーは識別 URI とリクエストを見つける必要があります。

ここに画像の説明を挿入

Supongo que te gusta

Origin blog.csdn.net/weixin_48053866/article/details/127164423
Recomendado
Clasificación