Webシステムのアプリケーションサーバーには、様々な種類と特徴があります。主要なアプリケーションサーバーについて説明します。
1. Apache Tomcat
- Java Servlet、JavaServer Pages(JSP)、Java WebSocketsをサポートするオープンソースのアプリケーションサーバー
- 軽量でシンプルな設計
- スレッドベースの処理モデル
- Apache Portable Runtime (APR) を使用することで高パフォーマンスを実現
- Apache Software Foundationによって開発・維持されている
具体例
<!-- Tomcat server.xml の設定例 -->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/myapp" docBase="/path/to/myapp.war" reloadable="true"/>
</Host>
</Engine>
2. JBoss/WildFly
- Red Hat によって開発されたJavaEEアプリケーションサーバー
- エンタープライズ向けの高度な機能を備える
- クラスタリング、フェイルオーバー、ロードバランシングに対応
- JBoss管理コンソールによるGUIベースの設定が可能
- マイクロサービスアーキテクチャ向けにWildFly Swarmという軽量版もある
3. WebSphere
- IBMによって開発されたJavaベースのアプリケーションサーバー
- 高度なセキュリティ、可用性、拡張性の機能を備える
- WebSphere管理コンソールによるGUI管理が可能
- 他のIBMミドルウェア製品とのシームレスな連携が可能
4. WebLogic Server
- OracleによってJava EEアプリケーションサーバーとして開発
- クラスタリング、ロードバランシング、マルチテナンシーなどのエンタープライズ機能を備える
- Oracle製品との連携が容易
- WebLogic Server管理コンソールによるGUI管理が可能
5. Nginx Unit
- Nginxの開発元であるNginx Inc.が開発した動的Webアプリ向けのアプリケーションサーバー
- Go、Node.js、PHP、Pythonなどに対応
- リバースプロキシとアプリサーバーを1つのバイナリに統合
- Nginxのアーキテクチャを引き継ぐため、高パフォーマンス
6. GlassFish
- オープンソースのJavaEEアプリケーションサーバー
- Eclipse Foundationによって開発・維持されている
- モジュラーなカーネル設計で拡張性が高い
-管理コンソールによるGUI管理が可能
アプリケーションサーバーの選定では、対応言語や標準規格、パフォーマンス要件、運用管理の容易性、既存インフラとの連携などを考慮する必要があります。大規模システムではJBoss、WebSphere、WebLogicなどのエンタープライズ向けアプリケーションサーバーが選ばれがちですが、中小規模システムではTomcatやGlassFishなどの軽量なオープンソースサーバーも多く使われています。また、マイクロサービスアーキテクチャの普及に伴い、Nginx Unitのような新しいタイプのアプリケーションサーバーも注目されています。