جدول محتوایی
نحوه استفاده از Nginx برای ریدایرکت
Nginx (انجین ایکس) یک وب سرور اوپن سورس قدرتمند HTTP با عملکردی قوی است. و می تواند به عنوان یک پروکسی معکوس یا پروکسی POP3/IMAP هم کار کند. سومین وب سرور محبوب جهان است و به دلیل عملکرد پیشرفته، سهولت استفاده، پایداری و حداقل استفاده از منابع به خوبی شناخته می شود. به همین دلیل در این آموزش، نحوه استفاده از Nginx برای ریدایرکت ترافیک به روش های مختلف را به شما آموزش خواهیم داد.
به گفته Datanyze، وب سرور Nginx بیش از 32 درصد سهم بازار در بازار وب سرورها دارد. این وب سرور از بسیاری از وب سایت های معروف مانند Github، Netflix، CloudFlare، Hulu، Airbnb، Hulu، WordPress و بسیاری دیگر پشتیبانی می کند.
ریدایرکت در Nginx
امکان فوروارد URL وب سایت به آدرس یا نقطه دیگری بر اساس معیارهای شما یکی از ویژگی های مهم وب سرور Nginx است. تنظیم مجدد Nginx ساده و آسان است. اغلب کاربران صفحه ای را تغییر مسیر می دهند که دارای رتبه سئو خوبی است. مثلا هنگام تغییر از یک CMS به پلتفرم دیگر. این ترکیب URL شما را به طور کامل تغییر می دهد. بنابراین، برای حفظ صفحه فعلی خود با ویژگی کاربردی SERP، می توانید URL قدیمی را به صفحه جدید ریدایرکت دهید.
در این آموزش، ما شما را با دو نوع ریدایرکت Nginx آشنا میکنیم: دائمی و موقت.
به یاد داشته باشید که Nginx را روی VPS خود نصب کنید.
توضیحاتی در مورد ریدایرکت موقت و دائمی
ریدایرکت های موقت در صورتی مفید هستند که مکان صفحه به طور موقت از یک مکان به مکان دیگر تغییر کند. کد پاسخ تغییر مسیر 302 برای تعیین حرکت موقت یک صفحه استفاده می شود.
برای مثال اگر تعمیر و نگهداری وب سایت شما در حال انجام است، از تغییر مسیرهای موقت برای اطلاع رسانی به کاربران مبنی بر در دسترس نبودن وب سایت استفاده می شود. مثال دیگر زمانی است که یک صفحه ناقص را به طور موقت تغییر مسیر می دهید. شما آن صفحه را به نقطه دیگر یا صفحه اصلی پیوند می دهید.
از سوی دیگر، ریدایرکت دائمی Nginx به مرورگر وب اطلاع می دهد که باید صفحه یا دامنه قدیمی را به طور دائم به یک مکان یا دامنه جدید لینک کند. برای ایحاد این تغییر، از کد پاسخ ریدایرکت 301 برای تعیین مسیر دائمی یک صفحه استفاده می شود. این نوع ریدایرکت ها زمانی مفید هستند که کاربر می خواهد نام دامنه را تغییر دهد و دیگر نمی خواهد مرورگر به آن دسترسی داشته باشد.
ریدایرکت صفحه در Nginx
به یاد داشته باشید، ابتدا باید از طریق SSH به VPS لینوکسی خود دسترسی داشته باشید. اگر در انجام این کار مشکل دارید، آموزش نحوه اتصال به سرو با SSH ما را ببینید کنید.
در Nginx، اکثر ریدایرکت ها را می توان با کمک ویژگی بازنویسی داخلی به دست آورد. یک ویژگی پیش فرض که در Nginx خام موجود است و هر دو نوع تغییر مسیر Nginx را پ.شش می دهد یعنی دائمی و موقت. در ساده ترین حالت، حداقل با دو URL یعنی URL قدیمی و جدید سر و کار داریم.
تغییر مسیر صفحات به یک مکان موقت یا دائمی در وب سرور Nginx ساده و آسان است. ابتدا به مسیر /etc/nginx/sites-enabled/default بروید و کد زیر را وارد کنید. توجه داشته باشید که متغیرها را متناسب با نیاز خود تغییر دهید:
Location path_pattern { rewrite ^ / oldURL $ https://www.domainone.com/newURL redirect; }
اگر میخواهید برای همیشه صفحه را به لینک دیگری هدایت کنید، در دستور بالا بهجای «redirect» از «permanent» استفاده کنید. path_patern معمولا /index.html است.
ریدایرکت یک دامنه در Nginx
برای تغییر مسیر یک دامنه به دامنه دیگر از دستور زیر در ترمینال استفاده کنید:
server { listen 80; hostname example.in www.example.in; rewrite ^ http: //www.example.com$request_uri? permanent; }
در اینجا از دو دامنه استفاده می کنیم. example.in دامنه قدیمی و www.example.com دامنه جدید.
ریدایرکت از HTTP به HTTPS با Nginx
HTTP و HTTPS از پورت های مختلفی استفاده می کنند. پورت HTTP 80 و پورت HTTPS 443. استفاده از HTTPS بسیار مفیدتر است زیرا از شما در برابر حملات MITM محافظت می کند. به خاطر داشته باشید برای اینکه این روش کار کند، باید یک SSL از قبل تنظیم کرده باشید. بنابراین، برای محافظت از تمام اطلاعات ارسال شده بین شما و بازدیدکنندگان، بهتر است که تمام درخواستهای ارسالی از HTTP به HTTPS را هدایت کنید. برای اینکار، می توانیم این کد را به همان فایل اضافه کنیم:
server { listen 80 default_server; server_name _; return 301 https://$host$request_uri; }
اکنون تمام ترافیک سرور بطور اتوماتیک از HTTP به HTTPS هدایت میشود.
ریدایرکت سایت های خاص
اگر از سایتها یا برنامههای مختلفی استفاده میکنید و میخواهید تنها یک سایت را ریدایرکت کنید، کافیست کد زیر را کپی کنید :
server { listen 80; server_name example.in; return 301 https: //example.in$request_uri; }
در ابن مثال، ما سایت http://www.example.in را به https://www.example.in ریدایرکت می کنیم.
ریدایرکت از www به non-www
خیلی وقت ها پیش می آید که میخواهید بازدیدکنندگان شما به جای www.example.in به دامنه ساده صفحه وب شما یعنی example.in دسترسی داشته باشند. گزینه های زیادی برای تغییر مسیر از www به url بدون www در Nginx وجود دارد. که یکی از راه های آسان برای انجام این کار به شرح زیر است:
server { server_name www.example.in; return 301 $ scheme: //example.in$request_uri; }[highlight color=”yellow”]نکته مهم: در مثال بالا از تغییر مسیر دائمی یعنی کد 301 استفاده کردیم.[/highlight]
در پایان برای اعمال تغییرات، دستور زیر را اجرا کنید تا Nginx مجددا راه اندازی شود:
sudo systemctl restart Nginx
نتیجه
Nginx یکی از قدرتمندترین وب سرورها است که به شما امکان میدهد طبق روش های بالا ریدایرکت های موقت و دائمی انجام دهید.
اکنون انواع ریدایرکت ها در Nginx را یاد گرفتید. امیدواریم این آموزش برایتان مفید بوده باشد.
منون از پست خوبتون
با سلام خیلی عالی بود از مطلبی که گذاشتید متشکرم
ممنون هرچی در مورد این موضوع میخواستم به راحتی عنوان کرده بودید
ای والا کارمون راه افتاد
تخفیف سرور مجازی هم موجود کنید باز
با سپاس
منون از پست خوبتون