میزبانی وب

nginx چیست ؟ آموزش نصب و راه‌اندازی وب سرور Nginx

پیش از آنکه بخواهیم نحوه نصب و راه اندازی Nginx را به شما عزیزان آموزش دهیم، باید بگوییم nginx چیست؟ در این مقاله تمامی نیازهای شما عزیزان بررسی شده و بعد از اتمام مقاله به راحتی امکان نصب nginx را خواهید داشت. پس با ما همراه باشید.

فهرست این مقاله ( با کلیک روی هر عنوان به آن قسمت منتقل می شوید) پنهان

nginx چیست ؟

در واقع باید پرسید وب سرور nginx چیست؟ Nginx به عنوان یکی از محبوب‌ترین و بهترین وب سرورها معرفی می شود که بصورت open source برای پروتکل های POP3، SMTP، HTTPS، HTTP و IMAP استفاده می شود. انجین‌اکس بر روی سیستم عامل های مختلف مانند Solaris، OS X، HP-UX، AIX و سیستم عامل لینوکس و ویندوز همچنین انواع BSD ها قابل اجراست.

مهم ترین مزیت Nginx نوع web server حجم پایین آن بوده و به دلیل داشتن این حجم پایین نیز، از رم پایینی استفاده می‌کند. در نتیجه، در پاسخگویی به کاربر، از سرعت بالایی برخوردار است. وب سرور Nginx نیز مانند تمام وب سرورها، برای پاسخگویی به درخواست‌های کاربران و در اختیار قرار دادن اطلاعات به آنها از روش‌های گوناگونی استفاده می کند.

Nginx اساسا برای خدمات رسانی به محتوای صفحات پویای HTTP بر روی شبکه تعبیه شده است. حال پیش از آموزش نصب Nginx باید به این سوال پاسخ دهیم که چرا nginx و Apache با هم اجرا می شوند؟ در ادامه  این مقاله که توسط گروه تولید محتوای ایران هاست ( ارائه دهنده‌ی خدمات خرید سرور مجازی خارج )  تهیه شده همراه ما باشید تا بیشتر در مورد این مواد صحبت کنیم.

nginx چیست

چرا Nginx و Apache را با هم اجرا کنیم؟

انجین‌اکس و apache هر دو، سرورهای قدرتمند و مؤثری هستند. آپاچی در حال حاضر به عنوان سرور شماره ۱ برای وبسایت‌ها،سلطنت می‌کند. زمان انتشار عمومی apache در سال ۲۰۰۶ بود. سپس وب سرور nginx جهان را با طوفانی به تصرف خود درآورد و اکنون سرور شماره ۲ سایت‌های فعال است. قدرت apache و سرعت nginx به خوبی شناخته شده است.

با این حال، هر دو سرور دارای اشکالاتی نیز، هستند — آپاچی در حافظه سرور دچار مشکلاتی است، در حالی که ان جین ایکس (عالی در static files) برای محتوای پویا به کمک php-fpm یا ماژول‌های مشابه، نیاز دارد. با این حال، می‌توان دو سرور وب را با هم ترکیب کرد. انجین‌اکس به عنوان static web server front و پردازش apache در قسمت backend  می‌تواند ترکیبی فوق‌العاده باشد.

در ادامه، نحوه نصب و راه اندازی این دو وب سرور را باهم، بررسی خواهیم کرد. همانطور که می‌دانید سرور‌های لینوکسی centos برای نصب و راه‌اندازی نرم افزار‌ها نیاز به دسترسی ssh دارند.  پس از کسب دسترسی مذکور با استفاده از نرم افزار هایی مانند putty به سرور مربوطه ssh می‌زنیم.

چگونگی کار با putty:

Putty را دانلود و اجرا کنید. توجه داشته باشید ممکن است هشداری در مورد تأیید صحت ناشر دریافت کنید.

برای دانلود Putty به این سایت مراجعه کنید
  1. اطلاعات لاگین را مانند تصویر زیر وارد بفرمایید.

تنظیمات putty

  1. سپس بر روی دکمه open کلیک کرده تا session ssh مربوطه ایجاد گردد. توجه داشته باشید اگر اولین بار است که از این رایانه به سرور وصل می‌شوید، پیغام زیر را مشاهده خواهید کرد. با کلیک روی Yes، اتصال را آغاز کنید.

تنظیمات putty security Alert

پس از باز شدن اتصال SSH، باید فوراً یک ترمینال را ببینید که ازشما نام کاربری را درخواست می‌کند:

نام کاریری یا یوزر خود و سپس پسورد را وارد کنید. لطفاً توجه داشته باشید که در هنگام تایپ رمز عبور، مکان نما خود را در حال حرکت یا کاراکتر های تایپ شده (مانند ******) نمی بینید ولی رمز عبور شما تایپ شده است و  وارد می‌گردد. این یک ویژگی امنیتی استاندارد PuTTY است. وارد شوید.

اکنون با SSH وارد سرور خود شده‌اید. شما باید خروجی مانند این را مشاهده کنید:

پیغام ورود با SSH به سرور

اکنون می‌توانید اقدام به وارد کردن command های لازم، از جمله دستورات لازم برای نصب ngnix  و apache نمایید.

 

بیشتر بخوانید: Session چیست

نحوه نصب و راه‌ اندازی Nginx

بعد از دانلود nginx برای ویندوز از اینجا، برای نصب Nginx، مخزن nginx Yum را با ایجاد پرونده nginx.repo در زیر فهرست /etc/yum.repos.d مانند شکل زیر، تنظیم کنید.تنظیم مخزن nginx Yum

در مرحله بعد ، از yum برای نصب Nginx مطابق دستور زیر استفاده کنید.

yum install nginx

سرویس انجین‌اکس را شروع کنید. برای شروع مناسب، از یک سرویس یا دستور systemctl استفاده کنید.شروع سرویس Nginx

نصب Reverse Proxy

مرحله بعدی نصب Reverse Proxy خواهد بود که در ادامه آنرا بررسی خواهیم کرد:

در این مرحله، اگر به عنوان مثال example.com را بار گذاری کنید، صفحه “Welcome to Nginx” را مشاهده خواهید کرد.

نصب Reverse Proxy

اکنون باید برای این کار، در پرونده /etc/nginx/conf.d/default.conf دو مورد زیر را انجام دهید:

در مورد پارامتر مکان موجود، نظر دهید.

  1. پارامتر مکان را از حالت کامن، خارج کنید.
  2. همانند شکل زیر پارامتر مکان جدید را با مقادیر پراکسی، اضافه کنید.

پرونده پیکربندی Nginx default.conf است که در زیر فهرست /etc/nginx/conf.d/ قرار دارد.

پرونده پیکربندی Nginx default.conf

سپس در همان پرونده default.conf، پارامتر مکان زیر را با مقادیر ذکر شده در ادامه اضافه کنید

default.conf

proxy_pass جایی است که شما URL سرور مقصد که انجین‌اکس باید پروکسی آنرا معکوس کند، مشخص می‌کنید. (در این مثال، این URL است که یک برنامه سازمانی در Apache / PHP درپورت ۸۰۸۰ را در حال اجرا دارد). هر دو HTTP و https برای proxy_pass پشتیبانی می‌شوند. URL می‌تواند آدرس IP یا نام دامنه داشته باشد.

اگر بعد از آدرس و شماره پورت، همانطور که در زیر مشاهده می‌کنید

به عنوان مثال، می‌توانید proxy_pass را مطابق شکل زیر در default.conf خود در Nginx تنظیم کنید.

تنظیم proxy-pass در default.conf

در این حالت، اگر درخواست دریافتی http://example.com/userlist باشد، معکوس می‌شود بهhttp://app.thegeekstuff.com:8080/devapp/userslist. توجه کنید که چگونه آن را ویرایش و سپس لیست کاربر را اضافه می‌کند اگرچه “URL” را در URL مثال example.com  مشخص نکردیم.

اگر درخواست دریافت شده به عنوان مثال example.com/userlist/detail.php?username=john باشد، proxy ان را به مقدار زیر ترجمه ترجمه خواهد کرد.

http://app.thegeekstuff.com:8080/devapp/userslist/detail.php?username=john

همچنین در  proxy_pass، می‌توانید از متغیر $host, $uri  یا $request variable مانند شکل زیر استفاده کنید:

در  proxy_pass، می‌توانید از متغیر $host, $uri  یا $request variable استفاده کنید

هنگامی که فیلد موجود را به عنوان درخواست اضافه می‌کنید، دستورالعمل proxy_set_header استفاده می‌شود. این عنوانِ درخواستی است که در سرور پروکسی، دریافت می‌شود (در این مثال به برنامه Apache / PHP).

در proxy_set_header ، دو قسمت زیر به طور پیش فرض با مقادیر نشان داده شده، تعریف می‌شود. اگر می‌خواهید تغییرش بدهید، باید مجدداً این مورد را، تعریف کنید.

proxy_set_header X-Forwarded-For – این آدرس مشتری را که به پروکسی متصل شده است دریافت می‌کند و در سربرگ HTTP به سرور پروکسی از راه دور ارسال می‌کند.

proxy_set_header X-Forwarded-For - این آدرس مشتری را که به پروکسی متصل شده است دریافت می‌کند

قابلیت های Ngnix

برخی از ویژگی های Ngnix را در اینجا ذکر می کنیم:

  • امکان بازنویسی URL یا URL Rewriting
  • پشتیبانی از TLS/SSL
  • امکان احراز هویت با استفاده از HTTP خارجی
  • سازگارd با IPV6
  • وجود قابلیت Fault Tolerance
  • وجود قابلیت Load Balancing
  • پشتیبانی از پروتکل SPDY
  • امکان فشرده سازی فایل ها

نتیجه نهایی:

در این مثال بعد از تنظیم reverse proxy زمانی که example.com را جستجو می‌کنید(زمانی انجین‌اکس  فعال باشد) اتفاقی که میافتد این است که به صفحه app.thegeekstuff.com با پورت ۸۰۸۰  (جایی که apache/php در حال اجراست) درخواست ارسال می‌گردد. مانند تصویر زیر:

به صفحه app.thegeekstuff.com با پورت 8080  (جایی که apache/php در حال اجراست) درخواست ارسال می‌گردد.

سوالات متداول

Nginx به عنوان پروکسی سروری معرفی می شود که بصورت open source برای پروتکل های POP3، SMTP، HTTPS، HTTP و IMAP استفاده می شود. ان جین ایکس بر روی سیستم عامل های مختلف مانند Solaris، OS X، HP-UX، AIX و لینوکس و ویندوز همچنین انواع BSD ها قابل اجراست. Nginx اساسا برای خدمات رسانی به محتوای صفحات پویای HTTP بر روی شبکه تعبیه شده است.
nginx و apache هر دو، سرورهای قدرتمند و مؤثری هستند. آپاچی در حال حاضر به عنوان سرور شماره ۱ برای وبسایت‌ها،سلطنت می‌کند. زمان انتشار عمومی apache در سال ۲۰۰۶ بود. سپس ان جین ایکس جهان را با طوفانی به تصرف خود درآورد و اکنون سرور شماره ۲ سایت‌های فعال است. قدرت apache و سرعت nginx به خوبی شناخته شده است. با این حال، هر دو سرور دارای اشکالاتی نیز، هستند — آپاچی در حافظه سرور دچار مشکلاتی است، در حالی که ان جین ایکس (عالی در static files) برای محتوای پویا به کمک php-fpm یا ماژول‌های مشابه، نیاز دارد. با این حال، می‌توان دو سرور وب را با هم ترکیب کرد.
proxy_pass جایی است که شما URL سرور مقصد که Nginx باید پروکسی آنرا معکوس کند، مشخص می‌کنید.

 

 

یک دیدگاه

  1. سلام
    موقع وصل شدن به پورت خودم همچین اروری میگیرم :
    ۲۰۱۴/۰۵/۳۰ ۱۱:۵۹:۴۲ [crit] 4075#0: *6 connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: “GET / HTTP/1.1”, upstream: “http://127.0.0.1:8001/”, host: “localhost:8080”

    کسی میتونه راهنمایی کنه؟

دیدگاهتان را بنویسید

نوشته های مشابه

دکمه بازگشت به بالا