راهکارها
بازارچه ابری
Arvan Docs

مستندات فنی

دسترسی به تمامی مستندات محصولات ابر آروان

Categories
Close
دسته‌بندی‌های سایت مشاهده دسته‌بندی‌ها بستن دسته‌بندی‌ها





مشاهده همه دسته‌ها All Categories

Redirect دامنه‌های سفارشی به سرور Apache برای Tomcat

Time To Read ۴ دقیقه
Date ۳۰ مهر ۱۴۰۰

نکته: ما در حال تغییر ساختار فایل و پیکربندی بسیاری از استک‌های بیتنامی هستیم. در نتیجه‌ی این تغییرات، مسیر فایل‌هایی که در این آموزش به آن‌ها اشاره شده ممکن است تغییر کند که این موضوع هم بستگی دارد که استک بیتنامی شما از پکیج‌های سیستمی نیتیو لینوکس استفاده می‌کند (رویکرد A) یا نسخه‌ای self-contained است (رویکرد B). برای تشخیص نوع استک‌تان و انتخاب رویکرد متناسب، دستور زیر را اجرا کنید:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

خروجی این دستور نشان می‌دهد که اپلیکیشن شما از کدام رویکرد (A یا B) استفاده می‌کند و به شما کمک می‌کند که در این راهنما مسیر، پیکربندی و دستورات متناسب با آن را انتخاب کنید. برای اطلاعات بیشتر راجع به این تغییرات، به بخش سوالات رایج مراجعه کنید.

برای Redirect دامنه‌های سفارشی به سرور آپاچی، دو مرحله وجود دارد که باید انجام شود:

  • ساخت هاست مجازی برای هر دامنه (در صورت نیاز به همراه گواهی‌ها)
  • اضافه کردن قوانین هدایت به پیکربندی سرور آپاچی

رویکرد A: اپلیکشین‌هایی که از پکیج‌های سیستمی استفاده می‌کنند

ساخت هاست مجازی برای هر دامنه

برای ساخت یک هاست مجازی:

  • برای اپلیکیشن‌تان یک ServerAlias به فایل /opt/bitnami/apache2/conf/vhosts/APPNAME-vhost.conf اضافه کنید. این گزینه به گونه‌ای طراحی شده که می‌توانید برای یک هاست نام‌های متفاوتی تعیین کنید و هنگام تطابق دادن درخواست‌ها از آن استفاده می‌شود. به مثال زیر توجه کنید:
<VirtualHost *:80>
  ServerName app.example.com
  ServerAlias www.app.example.com app.example.org www.app.example.uk.org
  ...
  • برای اپلیکیشن‌تان یک ServerAlias به فایل /opt/bitnami/apache2/conf/vhosts/APPNAME-https-vhost.conf اضافه کنید. این گزینه به گونه‌ای طراحی شده که می‌توانید برای یک هاست نام‌های متفاوتی تعیین کنید و هنگام تطابق دادن درخواست‌ها از آن استفاده می‌شود. به مثال زیر توجه کنید:
<VirtualHost *:443>
  ServerName app.example.com
  ServerAlias www.app.example.com app.example.org www.app.example.uk.org
  ...

همچنین برای هر هاست مجازی فعال روی پورت 443 باید گواهی جدید ایجاد کنید یا از گواهی‌های موجود، مثل گواهی‌های پیش‌فرض ارائه‌ شده همراه استک، استفاده کنید. دو راه پیش روی خود دارید:

* Option A: Update the *SSLCertificateFile* and *SSLCertificateKeyFile* directives for the virtual host to reflect the correct path for each virtual host's certificates:

...
SSLCertificateFile "/opt/bitnami/apache2/conf/bitnami/certs/app.example.com.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/bitnami/certs/app.example.com.key"
...

* Option B: Create symlinks to the default certificates.
  • بعد از اصلاح فایل‌های پیکربندی، آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود.
sudo /opt/bitnami/ctlscript.sh restart apache

اضافه کردن قوانین هدایت

گام بعدی اضافه کردن قوانین هدایت لازم برای هر دامنه است. در بخش‌های زیر دو روش معمول را بررسی می‌کنیم.

هدایت www.myapp.example.com به myapp.example.com

این نوع هدایت، یکی از بهترین‌ کارها برای بهبود سئو است.

  • قوانین زیر را به فایل /opt/bitnami/apache2/conf/vhosts/APPNAME-vhost.conf و داخل بلوک VirtualHost دامنه‌تان اضافه کنید.
<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
  RewriteRule ^(.*)$ http://%1$1 [R=permanent,L]
  ...
  • قوانین زیر را به فایل /opt/bitnami/apache2/conf/vhosts/APPNAME-https-vhost.conf و داخل بلوک VirtualHost دامنه‌تان اضافه کنید.
<VirtualHost *:443>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
  RewriteRule ^(.*)$ https://%1$1 [R=permanent,L]
  ...
  • بعد از اصلاح فایل‌های پیکربندی، آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود.
sudo /opt/bitnami/ctlscript.sh restart apache

هدایت myapp.example.com به www.myapp.example.com

  • محتوای زیر را به فایل /opt/bitnami/apache2/apps/APPNAME/conf/httpd-vhosts.conf و داخل بلوک VirtualHost دامنه‌تان اضافه کنید. یا اینکه این نوع هدایت را به صورت پیش‌فرض برای تمام دامنه‌ها فعال کنید. برای این کار کافی است محتوای زیر را به بلوک VirtualHost اصلی در فایل /opt/bitnami/apache2/conf/bitnami.conf اضافه کنید.
<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  ...

<VirtualHost *:443>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  ...
  • بعد از اصلاح فایل‌های پیکربندی، آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود.

رویکرد B: اپلیکیشن‌های Self-contained بیتنامی

ساخت هاست مجازی برای هر دامنه

برای ساخت یک هاست مجازی:

  • برای اپلیکیشن‌تان یک ServerAlias به فایل /opt/bitnami/apps/APPNAME/conf/httpd-vhosts.conf اضافه کنید. این گزینه به گونه‌ای طراحی شده که می‌توانید برای یک هاست نام‌های متفاوتی تعیین کنید و هنگام تطابق دادن درخواست‌ها از آن استفاده می‌شود. به مثال زیر توجه کنید:
<VirtualHost *:80>
  ServerName app.example.com
  ServerAlias www.app.example.com app.example.org www.app.example.uk.org
  ...

<VirtualHost *:443>
  ServerName app.example.com
  ServerAlias www.app.example.com app.example.org www.app.example.uk.org
  ...

همچنین برای هر هاست مجازی فعال روی پورت 443 باید گواهی جدید ایجاد کنید یا از گواهی‌های موجود، مثل گواهی‌های پیش‌فرض ارائه‌ شده همراه استک، استفاده کنید. دو راه پیش روی خود دارید:

* Option A: Update the *SSLCertificateFile* and *SSLCertificateKeyFile* directives for the virtual host to reflect the correct path for each virtual host's certificates:

...
SSLCertificateFile "/opt/bitnami/apps/APPNAME/conf/certs/app.example.com.crt"
SSLCertificateKeyFile "/opt/bitnami/apps/APPNAME/conf/certs/app.example.com.key"
...

* Option B: Create symlinks to the default certificates.
  • بررسی کنید که فایل httpd-vhosts.conf اپلیکیشن شما در فایل /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf آورده شده باشد. فایل مذکور باید شامل خطی شبیه خط زیر باشد.
Include "/opt/bitnami/apps/APPNAME/conf/httpd-vhosts.conf"

اگر نبود، خط فوق را به فایل /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf اضافه کنید و APPNAME را با نام صحیح دایرکتوری اپلیکیشن‌تان جایگزین کنید.

  • بعد از اصلاح فایل‌های پیکربندی، آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود.
sudo /opt/bitnami/ctlscript.sh restart apache

اضافه کردن قوانین هدایت

گام بعدی اضافه کردن قوانین هدایت لازم برای هر دامنه است. در بخش‌های زیر دو روش معمول را بررسی می‌کنیم.

هدایت www.myapp.example.com به myapp.example.com

این نوع هدایت، یکی از بهترین‌ کارها برای بهبود سئو است.

  • قوانین زیر را به فایل /opt/bitnami/apps/APPNAME/conf/httpd-vhosts.conf و داخل بلوک VirtualHost دامنه‌تان اضافه کنید.
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1$1 [R=permanent,L]
...

<VirtualHost *:443>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1$1 [R=permanent,L]
...
  • بعد از اصلاح فایل‌های پیکربندی، آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود.

هدایت myapp.example.com به www.myapp.example.com

  • محتوای زیر را به فایل /opt/bitnami/apps/APPNAME/conf/httpd-vhosts.conf و داخل بلوک VirtualHost دامنه‌تان اضافه کنید. یا اینکه این نوع هدایت را به صورت پیش‌فرض برای تمام دامنه‌ها فعال کنید. برای این کار کافی است محتوای زیر را به بلوک VirtualHost اصلی در فایل /opt/bitnami/apache2/conf/bitnami.conf اضافه کنید.
<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 ...

<VirtualHost *:443>
  RewriteEngine O
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 ...
  • بعد از اصلاح فایل‌های پیکربندی، آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود.
sudo /opt/bitnami/ctlscript.sh restart apache