Apache Tomcat، یک پیادهسازی منبع باز از تکنولوژیهای Java Servlet ،JavaServer Pages ،Java Expression Language و Java WebSocket است که به عنوان یکی از رایجترین برنامهها و وب سرورها در جهان امروز بکار میرود. استفاده از Tomcat ساده است و دارای یک اکوسیستم قوی از افزونهها است.
در این آموزش، نحوه نصب Tomcat 9.0 بر روی CentOS 8 شرح داده شده است.
این مطلب نیز ممکن است برای شما مفید باشد: تنظیم متغیرهای محیطی جاوا در لینوکس
نصب جاوا
Tomcat 9 به Java SE نسخه 8 یا نسخه جدیدتر نیاز دارد. در اینجا OpenJDK 11 (پیادهسازی منبع باز پلتفرم جاوا) را نصب خواهیم کرد.
به منظور نصب جاوا دستور زیر را به عنوان کاربر root یا کاربر با امتیازات sudo اجرا کنید:
sudo dnf install java-11-openjdk-devel
پس از اتمام نصب، با بررسی نسخه جاوا صحت نصب را تأیید نمایید:
java -version
خروجی دستور باید چیزی شبیه به زیر باشد:
output
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
ایجاد کاربر سیستم
اجرای Tomcat تحت کاربر root یک خطر امنیتی است. به همین دلیل، در اینجا یک کاربر و گروه سیستم جدید با دایرکتوری اصلی /opt/tomcat ایجاد میکنیم که سرویس Tomcat را اجرا مینماید. بدین منظور کافیست دستور زیر را وارد کنید:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
دانلود Tomcat
توزیع باینری Tomcat برای دانلود از صفحه دانلودهای Tomcat در دسترس است. در اینجا نسخه 9.0.30 نصب میشود، قبل از دنبال کردن مرحله بعدی، صفحه دانلود Tomcat 9 را بررسی نمایید تا جدیدترین نسخه را پیدا کنید.
فایل فشرده Tomcat را به صورت زیر با wget در پوشه /tmp دانلود نمایید:
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
پس از اتمام دانلود، فایل tar را در پوشه /opt/tomcat استخراج کنید:
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat به طور منظم به روز میشود. به منظور کنترل بیشتر بر روی نسخهها و به روز رسانیها، با دستور زیر، یک لینک نمادین به نام latest ایجاد مینماییم که به دایرکتوری نصب Tomcat اشاره میکند:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
کاربر سیستمی که قبلا ایجاد شده است، باید به دایرکتوری نصب tomcat دسترسی داشته باشد. مالکیت دایرکتوری را با دستور زیر به کاربر و گروه tomcat تغییر دهید:
sudo chown -R tomcat: /opt/tomcat
با دستور زیر، اسکریپتهای پوسته داخل پوشه bin را قابل اجرا نمایید:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
این اسکریپتها برای راهاندازی و متوقف سازی tomcat استفاده میشوند.
این مطلب نیز ممکن است برای شما مفید باشد: ایجاد سرویس لینوکس با systemd
ایجاد یک فایل واحد Systemd
بهجای راهاندازی و توقف دستی سرور Tomcat، بهتر است آن را به گونهای تنظیم کنید که بهعنوان یک سرویس اجرا شود. بدین منظور ویرایشگر متن خود را باز کرده و یک فایل tomcat.service در دایرکتوری /etc/systemd/system/ ایجاد نمایید:
sudo nano /etc/systemd/system/tomcat.service
سپس محتوای زیر را در آن قرار دهید:
/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
فایل را ذخیره کرده و ببندید.
با اجرای دستور زیر، به systemd اطلاع دهید که یک فایل سرویس جدید وجود دارد:
sudo systemctl daemon-reload
سرویس Tomcat را با دستور زیر، فعال و راهاندازی کنید:
sudo systemctl enable --now tomcat
وضعیت سرویس را می توانید با استفاده از دستور زیر بررسی نمایید:
sudo systemctl status tomcat
خروجی باید نشان دهد که سرور Tomcat فعال و در حال اجرا است:
output
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 20:38:07 UTC; 30s ago
Process: 3957 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
...
پیکربندی فایروال
اگر سرور شما توسط فایروال محافظت میشود و شما میخواهید از خارج از شبکه محلی به رابط tomcat دسترسی پیدا کنید، باید پورت 8080 را باز نمایید.
بدین منظور لازم از دستورات زیر استفاده کنید:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
به طور معمول، هنگام اجرای Tomcat در یک محیط تولید، باید از متعادل کننده بار یا پروکسی معکوس استفاده کنید. این بهترین روش است برای اینکه اجازه دسترسی به پورت 8080 را تنها از شبکه داخلی خود بدهید.
این مطلب نیز ممکن است برای شما مفید باشد: نصب آپاچی tomcat 8 بر روی centos 7
پیکربندی رابط مدیریت وب tomcat
در این مرحله، باید بتوانید با یک مرورگر وب برروی پورت 8080 به tomcat دسترسی داشته باشید. در ابتدای کار، رابط مدیریت وب در دسترس نیست؛ زیرا ما هنوز کاربری ایجاد نکردهایم. بنابراین باید قبل از هر کاری کاربر خود را تعریف نماییم.
کاربران و نقشهای Tomcat در فایل tomcat-users.xml تعریف شدهاند.
اگر آن فایل را باز کنید، متوجه خواهید شد که با خطوط کامنت شده و مثالهایی پر شده است که نحوه پیکربندی فایل را توضیح میدهد.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
به منظور ایجاد یک کاربر جدید که میتواند به رابط وب tomcat (manager-gui و admin-gui) دسترسی داشته باشد، فایل را مطابق زیر ویرایش کنید. مطمئن شوید که نام کاربری و رمز عبور را به چیزی امنتر تغییر دادهاید:
/opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
به طور پیش فرض رابط مدیریت وب tomcat به گونهای پیکربندی شده است که تنها اجازه دسترسی از میزبان محلی را میدهد.
اگر نیاز به دسترسی به رابط وب از هر جایی دارید، فایلهای زیر را باز کرده و خطوط زیر را حذف و یا کامنت نمایید:
/opt/tomcat/latest/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
لطفاً توجه داشته باشید، اجازه دسترسی از طرف همه جا توصیه نمیشود؛ زیرا این یک خطر امنیتی است.
اگر میخواهید تنها از یک IP خاص به رابط وب دسترسی داشته باشید، به جای کامنت کردن بلوکها، IP عمومی خود را به لیست اضافه کنید.
فرض کنید IP عمومی شما 41.41.41.41 است و شما میخواهید تنها از آن IP دسترسی داشته باشید، کافیست به صورت زیر عمل نمایید:
/opt/tomcat/latest/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
لیست آدرسهای IP مجاز، لیستی است که با نوار عمودی | جدا شده است. شما میتوانید آدرسهای IP را به صورت جدا جدا اضافه کنید یا از regular expression استفاده نمایید.
پس از اتمام، سرویس Tomcat را مجدداً راهاندازی کنید تا تغییرات اعمال شوند:
sudo systemctl restart tomcat
این مطلب نیز ممکن است برای شما مفید باشد: ذخیره دائمی قوانین فایروال iptables در لینوکس
تست نصب
مرورگر خود را باز کرده و آدرس خود را بصورت http://<your_domain_or_IP_address>:8080 وارد نمایید.
پس از نصب موفقیت آمیز، صفحهای مشابه تصویر زیر ظاهر میشود:
داشبورد مدیر برنامه وب tomcat به شما امکان میدهد برنامههای خود را استقرار، بازگشایی، راهاندازی، متوقف و بارگذاری مجدد کنید. این امکانات در آدرس http://<your_domain_or_IP_address>:8080/manager/html در دسترس است.
داشبورد مدیر میزبان مجازی Tomcat به شما امکان میدهد که میزبان مجازی Tomcat را ایجاد، حذف و مدیریت نمایید. این قابلیت در مسیر http://<your_domain_or_IP_address>:8080/host-manager/html در دسترس است.
منبع:
linuxize
0 دیدگاه
نوشتن دیدگاه