ホームページ  >  記事  >  運用・保守  >  LinuxサーバーにTomcatとNginxをデプロイする方法

LinuxサーバーにTomcatとNginxをデプロイする方法

WBOY
WBOY転載
2023-05-13 18:58:11913ブラウズ

1. 準備

まず、再生可能な Linux サーバーがあり、ユーザー名とパスワードがわかっている必要があり、次に、Windows コンピューターに 2 つの Linux サーバーをインストールする必要があります。 xshell 5 と xftp 5 のツールについては、インストール チュートリアルには入りません。補足の図は、サーバーへの接続方法を示しています:

xshell 接続インターフェイスは次のとおりです。ホスト IP を入力して「OK」をクリックすると、xshell がユーザー名とパスワードを入力するウィンドウをポップアップ表示します。接続は成功しました。

LinuxサーバーにTomcatとNginxをデプロイする方法

xftp 接続インターフェイスは次のとおりです。空白を埋めるだけです。非常に簡単です。詳細は説明しません。なぜ sftp の代わりに sftp が選択されるのかについて説明します。 ftpはこちら. ftpとsftpの違いを見る. これだけあれば十分理解できる!

LinuxサーバーにTomcatとNginxをデプロイする方法

# 2. インストールと展開作業

# プロジェクトを Linux サーバーに展開する場合は、次のインストールが不可欠です。 jdk と tomcat はい、ここで強調したいのは、tomcat の構成はアプリケーションごとに明らかに異なるため、1 つのサーバーに複数のアプリケーションをデプロイする場合は、アプリケーションごとに独自の Tomcat が必要であるということです。 , tomcatのインストールディレクトリとtomcatの作業ディレクトリを複数のアプリケーション配下にインストールすることができます. 同じ部分については, tomcatのインストールディレクトリを共有することができます. ここではtomcatとjdkをサーバー上にインストールする方法と操作方法を詳しく紹介します

1. ディレクトリの分割

これは非常に重要なステップですので、下図のように新しいディレクトリを作成します。いくつかの関連ファイルにアクセスすると、このディレクトリに複数のバージョンの jdk と複数のバージョンの Tomcat が配置されていることがわかります。プロジェクトのデプロイメント プロセス中にどの Tomcat と jdk を使用するかは、設定​​によって実現できます。

LinuxサーバーにTomcatとNginxをデプロイする方法

実際のアプリケーションの場合は、インスタンス ディレクトリに配置し、各アプリケーションの名前を設定し、対応する war パッケージをそのディレクトリ下に配置して解凍します。次のように、Tomcat がディレクトリを読み取り、アプリケーションをデプロイするのを待ちます:

LinuxサーバーにTomcatとNginxをデプロイする方法LinuxサーバーにTomcatとNginxをデプロイする方法

2. 構成を変更します

また、以下に示すように、管理を容易にするために、Tomcat を各アプリケーションの下のディレクトリに配置しますが、各 Tomcat の構成に注意する必要があります

LinuxサーバーにTomcatとNginxをデプロイする方法LinuxサーバーにTomcatとNginxをデプロイする方法

/bin start.sh ファイルと stop.sh ファイルの両方を変更する必要があります。まず、jdk パスを指定する必要があります。これは、環境変数の設定と同様です。2 番目のステップは、Tomcat 作業ディレクトリの Tomcat パスを指定することです。 catalina_home と catalina_base がそれぞれ tomcat のインストール ディレクトリと作業ディレクトリに対応していることがわかり、最後の行から、プロジェクトの起動ではインストール ディレクトリの下の start.sh が使用されますが、プロジェクトの起動には tomcat 設定ファイルが使用されることがわかります。各アプリケーション Tomcat によって設定される設定ファイルです。 stop.sh についても同様です。

LinuxサーバーにTomcatとNginxをデプロイする方法

xshell を使用して ./start.sh および ./stop.sh を実行するには、権限が必要です。権限がない場合は、xftp を使用して開始メッセージを電子メールで送信できます。 .sh 権限を変更するには、図に示すようにボックスをチェックします。

LinuxサーバーにTomcatとNginxをデプロイする方法

/conf ディレクトリ配下の、server.xml ファイルの設定変更に注意してください 対応するポート番号を変更してください tomcat の各アプリケーション別の設定を変更する必要があります。ポート番号を指定しないと、複数の Tomcat を起動するときにポートが占有され、起動できません。このアプリケーション用に設定された Tomcat のポート番号を覚えておくことをお勧めします。これは、後でポート マッピングに nginx を使用するときに使用されます。 ;

LinuxサーバーにTomcatとNginxをデプロイする方法

変更が必要なもう 1 つの場所は、catalina ディレクトリの下の localhost ディレクトリにある root.xml ファイルです。このファイルは、プロジェクトをロードするディレクトリを指定するために使用されます。 Tomcat の起動時のインスタンス。

LinuxサーバーにTomcatとNginxをデプロイする方法

他の /logs ディレクトリ、/temp ディレクトリ、/webapps ディレクトリ、および /work ディレクトリは変更する必要はありません。上記からわかるように、ディレクトリの分割は非常に明確であり、サービスのインストールに分割されています。ディレクトリ (jdk、tomcat、nginx など)、アプリケーション インスタンス ディレクトリ、アプリケーション デプロイメント ディレクトリ Linux サーバーを使用して複数のプロジェクトをデプロイする場合、この方法でこれらを分割することもできます。

3.nginx はポート 80 リバース プロキシを実装します

論理的に言えば、この時点で独自のアプリケーションの war パッケージを対応するディレクトリに転送して解凍できます。次に、対応するアプリケーションの Tomcat 作業ディレクトリに移動し、./start.sh を実行してプロジェクトを開始します。まずは試してみるのもいいかもしれません。

プロジェクトがデプロイされた後、ホストを構成してアクセスを開始します。このとき、アクセスする前に、上で構成した Tomcat ポート番号を追加する必要があることがわかります。ポート番号を追加できないことはできますか? (デフォルトのポート 80 はどうですか)?上で述べたように、異なる Tomcat に対して異なるポート番号を設定しました。その理由は、1 つのポート番号は 1 つの Tomcat でのみ使用できるためです。つまり、プロジェクト アクセスではアクセス用のポート番号を追加する必要があります。ただし、それはプロジェクトごとに行う必要があります。アプリケーションがアクセスにポート 80 を使用することも可能です。これは、nginx が使用される場合です。nginx をインストールした後、リバース プロキシを実現するためにいくつかの構成を追加し、さまざまなアプリケーションで使用されるポート 80 へのアクセスを対応するポート番号に転送できます。 Tomcat の観点から見ると、外部リクエストは Tomcat によって設定されたポート番号を引き続き使用するため、目的の効果が得られます。具体的な設定は次のとおりです (もちろん、対応するディレクトリ分割作業も行う必要があります):

nginx ディレクトリは次のとおりです:

LinuxサーバーにTomcatとNginxをデプロイする方法

/conf ディレクトリにある nginx.conf 構成ファイルについてのみ注意する必要があります。また、全員に向けた特定の構成情報も公開しました最後の行「include Domains/*」に気づきましたか?これは、構成がまだ完了しておらず、/domains ディレクトリ

LinuxサーバーにTomcatとNginxをデプロイする方法

# にあるすべての構成ファイルが含まれていることを意味します。 ## この時点では、各アプリケーションに対応する nginx 構成は、異なる名前のファイルで構成できます。

LinuxサーバーにTomcatとNginxをデプロイする方法# 次に、それを構成してオークションをリッスンする方法を見てみましょう。 center.jd.net :80 ドメイン名にアクセスし、ローカル マシンの 127.0.0.1 の 1605 ポート アクセスに転送される設定からも、http_500 http_502 http_504 などの異常な状態が発生していることがわかります。通常の状況では、Web サイトのホームページなどにジャンプして、ログを記録できます。この設定ファイルを設定した後、新しいログ ディレクトリを作成することを忘れないでください。そうしないと、nginx が見つけることができません。ディレクトリに保存され、起動時にエラーが報告されます。

LinuxサーバーにTomcatとNginxをデプロイする方法 これらのタスクを完了しても、まだ完了していません。nginx を再起動する必要があります。再起動方法については詳しく説明しません。関連する内容がたくさんあります。再起動に失敗した場合は、nginx プロセスを強制終了し、nginx service start コマンドを使用して nginx サービスを開始します。

これらの作業が完了したら、使い慣れた方法 (ポート番号を追加せずに) でアクセスできますか? はい、その通りです。まだアクセスできるかどうかを心配している人も多いでしょう。Tomcat を再起動し、アプリケーションを再デプロイする場合、それはネットワーク層の nginx ルーティング変換層を理解していないことを意味するだけです。最初に訪問するドメイン名は、設定したホストを通じて DNS 解決を実行し、対応する IP に変換し、対応するサーバーを見つけます。サーバーのファイアウォールを介して ip. を取得し、サーバー上で nginx を設定すると、nginx は最初にリクエストをインターセプトし、リクエストを処理して配布し、最後に対応する Tomcat にヒットします (個人的な理解です。理解が適切ではないかもしれませんが、スプレーしないでください)、現時点では、ドメイン名にアクセスして、自信を持ってリクエストを送信できます。 !

4. 罠に足を踏み入れましょう

うーん。 。良くない! !嬉しくてホームページに飛んだのですが、やはり指定したアプリケーションにアクセスできず、ポート番号を追加してみたら「奇跡的に」アクセスできました。つまり、設定したnginxが反映されていないということです。問題は??

さて、私の問題解決のアイデアについてお話します。まず、すべてのリクエストが nginx に送信されたことを確認する必要があります。この時点で、ログの利点が反映されます。ポート 80 を使用してアプリケーションにアクセスするとき、じっと見つめてください。一度、二度、三度、丸太を見てください。 。ログがありません。現時点では、nginx サービスがまったく使用されていないと大まかに結論付けることができます。nginx サービスがサーバー上で有効になっていないと確信することはできません。ログの設定に問題がある可能性があります。この時、nginxサービスへのアクセスをオフにするか、Webサイトのトップページに飛ぶという大胆な操作を行ったのですが、どうなっているのでしょうか?ホームページへのジャンプはnginxで設定されていませんか?確かに、同社はすでにネットワーク層でこの問題に対処していました。この時点では、私は非常に混乱していました。さまざまな試みを行っただけでした。Tomcat の構成を変更して、アプリケーションの 1 つをポート 80 に構成することも考えられます。すぐに変更が完了しました。デプロイ後は、アドレスバーにドメイン名が入力されるのを待ってアクセスしました。nginx サービスは終了しているため、この時点でのリクエストは行われませんでしたTomcatに直接送信する必要があります。1回、2回、3回アクセスしましたが、奇跡的にアクセスできませんでした。ニ? ? ?このとき、サーバーのファイアウォールがポート 80 を無効にしているに違いないとひらめき、すぐにローカルで 192.168.108.37 80 に Telnet してみましたが、アクセスできないことがわかり、私の推測が正しかったことがわかりました。これで処理は簡単になりました。ファイアウォールで有効にするだけで済みました。ポート 80 へのアクセスで十分です。以下は、centos でポート 80 を開くように iptables ファイアウォールを設定する方法についての補足です。

1. iptables 構成ファイルを開きます。コードは次のとおりです。 vi /etc/sysconfig/iptables

2. /etc/init.d/iptables status コマンドを使用して、ポート 80 が開いています。そうでない場合は、それを処理する 2 つの方法があります。

3. 最初の方法: vi /etc/sysconfig/iptables コマンドを変更して、ポート 80 を開くようにファイアウォールを追加します。コードは次のとおりです。次のようになります:

コードをコピーします コードは次のようになります:

-a rh-firewall-1-input -m state --state new -m tcp -p tcp --dport 80 -j accept

4. 閉じる/開く/再起動 ファイアウォールのコードは次のとおりです: /etc/init.d/iptables stop (#start to open, #restart to restart)

5. 2 番目の方法: コマンドを使用してポートを追加します。コードは次のとおりです:

[root@centos httpd]# /sbin/iptables -i input -p tcp --dport 80 -j accept
[root@centos httpd]# /etc/rc.d/init.d/iptables save
[root@centos httpd]# /etc/init.d/iptables restart

6. 効果を確認します: [root@centos httpd]# /etc/init.d/iptables status

7また、操作が簡単で成功率が高い 2 番目の方法を使用することをお勧めします。たとえば、最初の方法を使用してファイアウォールの構成を変更すると、再起動に失敗しますが、 2 番目の方法は完全に成功します

以上がLinuxサーバーにTomcatとNginxをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。