نصب Nginx بر روی اوبونتو ۱۸.۰۴

رضا فرخندگان ۰۱ آبان ۱۳۹۷ ۰ دیدگاه

در این مقاله قصد داریم نصب Nginx بر روی اوبونتو ۱۸.۰۴ را آموزش دهیم. اما ابتدا باید با مفهوم Nginx آشنا شویم:

Nginx چیست؟

Nginx یکی از معروف‌ترین وب‌سرور‌ها در جهان بوده که مسئولیت میزبانی برخی از پرترافیک‌ترین وب‌سایت‌ها در اینترنت را بر عهده دارد.

این نرم‌افزار در برخی از موارد بسیار کاربر پسندتر از آپاچی بوده و می‌تواند به‌عنوان یک وب‌سرور یا پروکسی استفاده شود. در این آموزش ما نحوه‌ی نصب Nginx را بر روی سرور ابونتو ۱۸.۰۴ توضیح خواهیم داد.

نصب Nginx بر روی اوبونتو 18.04

پیش‌نیازها:

پیش از شروع آموزش باید این پیش‌نیازها را در اختیار داشته باشید:

وجود یک سرور ابونتو ۱۸.۰۴ و یک کاربر غیر روت با امتیازات sudo. به‌علاوه، باید یک فایروال جهت بلاک کردن قسمت‌های غیر ضروری داشته باشید. جهت رعایت این موارد، مقاله‌ی اقدامات اولیه پس از نصب ابونتو ۱۸.۰۴ را مطالعه کنید.

هنگامی که اکانت خود را ساختید، به‌عنوان کاربر غیر روت وارد شده و مراحل زیر را به‌ترتیب انجام دهید:

مرحله اول: نصب Nginx

از آن‌جایی که Nginx در مخازن ابونتو موجود است، می‌توانید برای نصب آن از پکیج apt استفاده کنید.

در ابتدا ایندکس پکیج را آپدیت کنید:

sudo apt update

سپس Nginx را نصب کنید:

sudo apt install nginx

 

مرحله دوم: تنظیم فایروال

پروفایل‌های برنامه ufw موجود را بررسی کنید:

sudo ufw app list

Output

Available applications:

  Nginx Full

  Nginx HTTP

  Nginx HTTPS

  OpenSSH

اکنون باید پروفایل محدود کننده‌ای را فعال کنیم که همچنان به ترافیک پیکربندی شما در پورت ۸۰ اجازه‌ی فعالیت بدهد:

sudo ufw allow ‘Nginx HTTP’

حال تغییرات را تائید کنید:

sudo ufw status

OutputStatus: active

To                         Action      From

 —                          ——         —-

OpenSSH                    ALLOW       Anywhere                 

Nginx HTTP                 ALLOW       Anywhere                 

OpenSSH (v6)               ALLOW       Anywhere (v6)            

Nginx HTTP (v6)            ALLOW       Anywhere (v6)

 

 

مرحله سوم: بررسی وب‌سرور

با دستور systemd سیستم را چک کنید تا مطمئن شوید که سرویس با تایپ کردن راه‌اندازی می‌شود:

systemctl status nginx

Output

  • nginx.service – A high performance web server and a reverse proxy server

   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)

   Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago

     Docs: man:nginx(8)

 Main PID: 2369 (nginx)

    Tasks: 2 (limit: 1153)

   CGroup: /system.slice/nginx.service

           ├─۲۳۶۹ nginx: master process /usr/sbin/nginx -g daemon on;

master_process on;

           └─۲۳۸۰ nginx: worker process

اکنون باید به صفحه ورود (landing page) پیش‌فرض دسترسی داشته باشید تا تائید کنید که نرم‌افزار به‌درستی از طریق آدرس IP شما راه‌اندازی می‌شود:

http://your_server_ip

اکنون باید بتوانید صفحه ورود پیش‌فرض Nginx را مشاهده کنید:

 

نصب Nginx بر روی اوبونتو 18.04

مرحله چهارم: نصب بلوک‌های سرور (پیشنهادی)

 

هنگام استفاده از وب‌سرور Nginx می‌توانید از بلوک‌های سرور (مانند هاست مجازی در آپاچی) جهت محدود کردن جزئیات پیکربندی و هاست (بیشتر از یک دامین از یک سرور) استفاده کنید.

در این قسمت یک دامین به‌نام example.com را نصب می‌کنیم. اما شما باید آن را با نام دامین خودتان جایگزین کنید.

دایرکتوری را برای example.com بسازید و از –p جهت ساخت هر دایرکتوری مورد نیاز استفاده کنید:

sudo mkdir -p /var/www/example.com/html

مالکیت دایرکتوری را اختصاص دهید:

sudo chown -R $USER:$USER /var/www/example.com/html

چنان‌چه مقدار unmask را اصلاح نکرده‌اید، مجوز ریشه‌های وب شما صحیح هستند. برای اطمینان می‌توانید دستور زیر را تایپ کنید:

sudo chmod -R 755 /var/www/example.com

به‌وسیله‌ی nano یا ویرایشگر مورد علاقه‌ی خود، یک صفحه نمونه index.html بسازید:

nano /var/www/example.com/html/index.html

سپس HTML را مانند زیر اضافه کنید:

var/www/example.com/html/index.html

<html>

    <head>

        <title>Welcome to Example.com!</title>

    </head>

    <body>

        <h1>Success!  The example.com server block is working!</h1>

    </body>

</html>

هنگامی که کار تمام شد، فایل را سیو کرده و آن را ببندید.

 

یک بلوک سرور در /etc/nginx/sites-available/example.com ایجاد کنید:

sudo nano /etc/nginx/sites-available/example.com

اطلاعات زیر را در بلوک ایجاد شده کپی کنید و آن را برای دایرکتوری و دامین جدید آپدیت کنید:

/etc/nginx/sites-available/example.com

server {

        listen 80;

        listen [::]:80;

 

        root /var/www/example.com/html;

        index index.html index.htm index.nginx-debian.html;

 

        server_name example.com www.example.com;

 

        location / {

                try_files $uri $uri/ =404;

        }

}

هنگامی که کار تمام شد، فایل را سیو کرده و آن را ببندید.

فایل را توسط یک لینک به دایرکتوری sites-enabled فعال کنید:

·         sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

اکنون دو بلوک سرور فعال هستند و آماده‌ی پاسخ به درخواست‌های مبتنی بر دستور‌العمل‌های listen  و server_name هستند:

  • example.com: به درخواست‌های example.com و www.example.com پاسخ می‌دهد.
  • Default: به هر درخواست در پورت ۸۰ که با دو بلوک دیگر سازگاری نداشته باشد، پاسخ می‌دهد.

به‌منظور جلوگیری از مشکلات احتمالی که می‌تواند ناشی از اضافه کردن nameserverهای اضافی باشد،  باید یک مقدار واحد در فایل /etc/nginx/nginx.conf تعریف شود. برای این کار ابتدا فایل را باز کنید:

sudo nano /etc/nginx/nginx.conf


سپس دستورالعمل server_names_hash_bucket_size  را پیدا کرده و علامت # را از آن پاک کنید تا ارتباط خطوط قطع شود:

/etc/nginx/nginx.conf

http {

    …

    server_names_hash_bucket_size 64;

    …

}

حال خطاهای دستوری را بررسی کنید:

sudo nginx -t

سپس Nginx را ریست کنید تا تغییرات اعمال شوند:

sudo systemctl restart nginx

اکنون مراحل نصب در این قسمت به پایان رسیده و Nginx برای نام دامنه شما فعال شده است.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.