اگر سرور شما لینوکس است ولی هاست اشتراکی و یا سروری با cpanel و یا direct admin استفاده نمی کنید و سرویس های مختلفی برروی سرور اجرا میکنید که هر کدام بر روی پورت مجزایی expose شده است ولی هر سرویس را میخواهید برروی subdomain خاصی اجرا کنید، این مقاله برای شما نوشته شده است.
اگر دامنه ی مورد نظر به ip سرور متصل شده است این مرحله را را انجام داده اید در غیر این صورت از ارائه دهنده ی سرور، آدرس dns سرور را بگیرید برای مثال :
dns.xaas.ir و dns2.xaas.ir
این آدرس ها را باید برای دامنه های ir در سایت nic.ir برای دامنه ی مربوطه ثبت کنید.
حدودا ۲۴ ساعت زمان می برد تا دامنه به سرور متصل شود. پس از این اتصال باید ping دامنه ی مورد نظر و هر subdomain از آن را داشته باشید.
در مرحله ی بعد شما برای ارائه ی سرویس وب از وب سروری مانند nginx, apache استفاده میکند که در این مقاله در مورد nginx صحبت شده ولی مشابه آن برای وب سرور های دیگر نیز تنظیمات باید انجام شود.
در فایل /etc/nginx/nginx.conf و یا فایل هایی که در آن import شده اند باید تنظیمات مربوطه را انجام داد.
فرض میکنیم وب اپلیکیشنی با فریمورک لاراول بر روی پورت 8080 با تنظیمات زیر برای nginx در حال استفاده است:
server {
listen 8080;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/project_dir/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass laravel-app:9000; #9000 is laravel app expose port
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
حال می خواهیم این اپ را با app.domain.ir اجرا کنیم. بنابراین خطوط زیر را به فایل کانفیگ nginx اضافه میکنیم:
server {
listen 80;
server_name app.domain.ir;
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
}
بعد از آن nginx را restart کرده و با دامنه ی ذکر شده به سرویس مورد نظر دسترسی داریم.