سلام
معمولا api رو در کجا قرار می دهند ؟ یک سرور و دامنه جدا از فرانت اند ؟ یا یک ساب دامین مثلا api.example.com
؟
بعضی شرکت های معتبر رو نگاه کردم در سرور و دامنه ای جدا داشتند . من خودم معمولا در ساب دامین دارم . ولی شک دارم که کار درستی می کردم یا خیر ..!
ممنون میشوم راهنمایی بفرمایید
سلام
اول اینکه اجباری به جداسازی سرور نیست.
دوم اینکه مرسوم هست از یکی از دو حالت های زیر استفاده میکنند:
api.example.com
example.com/api
برای هر یک از دو حالت هم تنظیماتش لازم هست در لایه وب سرورتون انجام بشه. یعنی به محض دریافت ریکوئست به یک URL خاص این وظیفه وب سرور هست که بفهمه آیا باید درخواست رو به API برسونه یا اپلیکیشن فرانت اندیتون.
بسته به شرایطتون میتونید سرچ کنید و به پاسخ های زیادی برسید. بعنوان مثال اگر از وب سرور Nginx و حالت زیردامنه استفاده بکنید تنظیماتش میشه یک چیزی تو این مایه ها:
#laravel.conf
server {
listen 80;
root /var/www/html/project_name/public;
index index.php index.html index.htm;
server_name api.example.com www.api.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
#vue.conf
server {
listen 80;
index index.html;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:8080;
}
}
@mimsadAlef
خب برادر مشکل اینه که نمیتونم این کار رو بکنم . (مگر اینکه در دامنه و سرور جدا باشه)
چون درخواست ها ارسال میشه به vuejs
یعنی نمیتونم 2 تا فایل index داشته باشم (یکی مال لاراول و یکی مال vuejs)
درود ..فعلا هر جا هر طوری میتونی بیار بالا .بعدا خیلی راحت میتونی انتقال بدی یا تغییر بدی .نمون روی این مساله .
قطعا براي اين دو راهكاري هست
چون خيلي ها تو سايتشون لاراول و vue استفاده مي كنند
@hesammousavi يه راهنمايي بكنيد
سلام
اول اینکه اجباری به جداسازی سرور نیست.
دوم اینکه مرسوم هست از یکی از دو حالت های زیر استفاده میکنند:
api.example.com
example.com/api
برای هر یک از دو حالت هم تنظیماتش لازم هست در لایه وب سرورتون انجام بشه. یعنی به محض دریافت ریکوئست به یک URL خاص این وظیفه وب سرور هست که بفهمه آیا باید درخواست رو به API برسونه یا اپلیکیشن فرانت اندیتون.
بسته به شرایطتون میتونید سرچ کنید و به پاسخ های زیادی برسید. بعنوان مثال اگر از وب سرور Nginx و حالت زیردامنه استفاده بکنید تنظیماتش میشه یک چیزی تو این مایه ها:
#laravel.conf
server {
listen 80;
root /var/www/html/project_name/public;
index index.php index.html index.htm;
server_name api.example.com www.api.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
#vue.conf
server {
listen 80;
index index.html;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:8080;
}
}
@mhyeganeh
خیلی ممنون هستم از راهنمایی تون ، متاسفانه خیلی روی این مباحث مربوط به سرور کار نکردم و حس می کنم که نیاز دارم کار کنم ...
همین مورد رو برای وب سرور Apache در فایل .htaccess چجوری میشه پیاده سازی کرد ؟
چیز پیچیده و غیرقابل یادگیری نداره و اگر بصورت فریلنس یا فول استک کار میکنید به نظرم لازمه حتما روی این بخش هم وقت بگذارید و در حد نیاز مسلط بشید. چون خیلی لازمه.
برای Apache هم خودتون سرچ کنید دیگه 😏😉
ایده کلیش اینه که باید برای هر server_name
یا همون دامنه یکسری کانفیگ ها انجام بدید و به وب سرور بفهمونید هر وقت درخواستی برای اون آدرس اومد باهاش چکار کنه.
سلامت باشید...
هدف بنده و سایر دوستان از جمله خود جنابعالی کمک به هم دیگه و ارتقای سطح جامعه برنامه نویسان ایران هست.
و به نظرم برای رسیدن به این هدف باید سعی کنیم حتی المقدور ماهیگیری یاد بدیم و نه ماهی آماده 😉
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟