応用NGINX+HTTPS(奮闘)


Nginxもサーバです.Nginxには、静的ファイルの作成、リダイレクト、キャッシュなど、さまざまな機能があります.ここでは、HTTPSをNginxベースのWebサーバに適用する方法について説明します.
親善試合でNginxサーバーとノード2つのjsサーバが構築されます.
上図の以前のエンドサーバを例にとると、まずnextフレームワークを使用して構築されたサーバを元の80ポートに移行し、その後3000ポートに移行し、nginxサーバを80ポートに実行します.同じポートで2台のサーバを同時に開くことができないため、配布されます.したがって、外部から433ポートにアクセスすると(httpsのデフォルトポートは433)、nginxサーバはnextポートに直接接続されます.外部から80番ポートにアクセスすると、nginxサーバは433ポートにリダイレクトしてアクセスします.
前のサーバと後のサーバの関係を逆エージェントと呼びます.リバースエージェントについてもう少し勉強するつもりです.(nginxはnextサーバを逆プロキシします.)

右側の奮闘でnginxをインストールおよび設定する


1.nginxのインストール

$ sudo apt-get install -y nginx 

2.nginx congifファイル設定の表示

$ vim /etc/nginx/nginx.conf
入力すると.
たくさんの情報が見られます.

ここで注意しなければならない部分はhttpです.
HTTPでは、サーバ上でドメイン(server name)とプロキシポート(3000)を使用できます.
作成するには、次の手順に従います.
servser{
	server_name effectshop-htmlcss.ml;
	listen 80;
	location / {
			proxy_set_header HOST $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
			proxy_pass http://127.0.0.1:3000;
			procy_redirect off;
	}
}
server nameは、独自のプロジェクトドメイン名を作成できます.
Proxy passセクションでは、リダイレクトするローカルポートを設定します.

このように追加しましょう

3.Let's Encryptで無料CA証明書を取得


Let's Encryptで3ヶ月間の無料CA証明書を取得できます.3ヶ月が満期になって、その時になってから更新すればいいです.自動化更新は後で処理します.自動更新はこちらのサイトをご参考ください.
ゼロ秒nginx httpsの適用
設定
$ sudo snap install certbot --classic
$ sudo certbot --nginx
自分のEメールを入力し、条件と条件を受け入れ、必要なドメインを入力して証明書を取得できます.次にサーバを実行します.
その前に必ずport 80号をクリアしてください.
$ sudo lsof -i tcp:80
このコマンドで80個のポートが割り当てられていることを確認し、他のポートが割り当てられている場合は殺し、nginxサーバを80個開いてください.

nginxエラーシーンでは、80個のポートがノードに書き込まれていることがわかります.ノードサーバを殺してください.
$ sudo npx pm2 kill //모든 pm2 로 실행한 포트 kill 합니다.

別のサーバが80番ポートで動作しているかどうかをもう一度確認してください.
$ sudo certbot --nginx
もう一度入力して、ドメインを設定してから見てください.成功しました.

上の写真を見ると公開鍵と個人鍵の位置が見えます.
再/etc/nginx/nginx.conf部分をご覧ください

他のssl設定が追加されていることがわかります.

自動更新


cronを使用してリフレッシュします.
vim/etc/cron.d/certbotファイルを変更するには:ファイルが存在しない場合は、
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12* * * root certbot -q renew --nginx --renew-hook 'service nginx reload'
したがって、フロントエンドhttpsアプリケーションは完了しました.
nginx単純コマンド
// 시작
$ sudo service nginx start
$ sudo systemctl start nginx
$ sudo /etc/init.d/nginx start

// 재시작
$ sudo service nginx restart
$ sudo systemctl restart nginx
$ sudo /etc/init.d/nginx restart

// 중지
$ sudo service nginx stop
$ sudo systemctl stop nginx
$ sudo /etc/init.d/nginx stop

// 상태
$ sudo service nginx status
$ sudo systemctl status nginx

// 설정 reload
$ sudo service nginx reload
$ sudo systemctl reload nginx
$ sudo nginx -s reload

// 설정파일 문법 체크
$ sudo nginx -t

// 재시작 전에 80번 포트 중지
$ sudo fuser -k 80/tcp
expressフレームワークを使用するには:
app.jsはいappset('trust proxy', 1);//プロキシサーバの後ろでexpressを使用するときに行う設定.もう一つ追加しましょう