HTTP / 2 را در Nginx در اوبونتو 16.04 فعال کنید

HTTP / 2 نسخه جدید پروتکل قدیمی HTTP / 1.1 منسوخ است که در سال 1999 به طور استاندارد انجام شد. از آن زمان تاکنون بسیاری از چیزها در وب تغییر کرده است. برنامه های ما پیچیده تر از گذشته است ، بنابراین برای مقابله با آن ، تغییر در پروتکل حمل و نقل اساسی ضروری است. مهمترین چیز در مورد HTTP / 2 این است که باعث می شود صفحه وب شما برای کاربران نهایی سریعتر شود.

به طور خلاصه HTTP / 2 5 ویژگی اصلی را اضافه می کند :

  • ارتباط تك و مداوم
  • چند برابر
  • فشرده سازی هدر
  • اولویت بندی منابع
  • لایه حمل و نقل ایمن است (فقط برای مرورگرها معتبر است)

توضیح همه این ویژگیها خارج از محدوده این آموزش نیست ، اما اگر می خواهید در این موضوع عمیق تر باشید ، می توانید گزیده ای از کتابخانه شبکه های مرورگر با عملکرد بالا - گزیده ای از HTTP / 2 را پیشنهاد کنم .

در این راهنما قصد داریم آخرین نسخه پایدار Nginx را در Ubuntu 16.04 (Xenial) نصب کنیم ، گواهی SSL خود امضا کرده ، پروتکل HTTP / 2 را در Nginx فعال کرده و مرورگر مبتنی بر متن را نصب کنیم elinksتا به عنوان سرویس دهنده HTTP عمل کند.

Nginx را نصب کنید

برای نصب جدیدترین نسخه پایدار Nginx ، باید دستورات کاملی صادر کنیم:

  1. ما باید کلید عمومی PGP Nginx را که برای امضاء بسته ها و مخازن استفاده می شود بارگیری کنیم و آن را به کلیدی استفاده شده توسط مدیر بسته برای بررسی صحت بسته های بارگیری شده از مخزن اضافه کنیم.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. کلید PGP را از سیستم پرونده حذف کنید:

    rm nginx_signing.key
    
  3. مخزن جدید اضافه کنید

    printf "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx \n" >> /etc/apt/sources.list.d/nginx.list
    
  4. لیست بسته های خود را به روز کنید و Nginx را نصب کنید:

    apt update && apt install nginx -y
    
  5. برای تأیید نسخه Nginx می توان از موارد زیر استفاده کرد:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    اگر همه چیز خوب پیش برود ، باید 1.10.xهنگام اجرای nginx -vدستور الگویی مانند در خروجی را مشاهده کنید.

گواهی خود امضا شده و HTTP / 2

اگرچه مشخصات HTTP / 2 مرورگرها را مجبور به اجرای HTTP / 2 از طریق TLS نمی کند ، همه مرورگرهای اصلی تصمیم به اجرای HTTP / 2 فقط بر روی TLS می گیرند ، اما نه نسخه TLS ، فقط TLS 1.2 یا بالاتر.

ما می خواهیم برای example.comدامنه داستانی گواهی های خود امضا کنیم ، برای تولید به دامنه معتبر نیاز دارید و از CA قابل اعتماد استفاده می کنید.

  1. ایجاد کلید خصوصی:

    openssl genrsa -aes128 -out example.com.key 2048
    

    پس از اجرای این دستور باید 2 بار عبارت عبور را وارد کنید. از آنجا که عبارات عذاب آور است ما قصد داریم آن را حذف کنیم.

  2. عبارت عبور را از کلید خصوصی حذف کنید:

    openssl rsa -in example.com.key -out example.com.key
    
  3. ایجاد درخواست ثبت گواهینامه (CSR):

    openssl req -new -sha256 -key example.com.key -out cert-request.csr 
    

    ما در حال ایجاد مجوز تک دامنه هستیم بنابراین باید زمینه نام مشترک را برابر با example.comدامنه تنظیم کنیم

  4. ایجاد گواهینامه:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. مرتب کردن گواهینامه و کلید خصوصی:

    mkdir -p /etc/ssl/testing/private && mkdir /etc/ssl/testing/certs
    mv example.com.key /etc/ssl/testing/private && mv example.com.crt /etc/ssl/testing/certs
    
  6. دایرکتوری میزبان مجازی nginx را تهیه کنید

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. سپس اجرا nano /etc/nginx/nginx.confکنید و یک بخشنامه پیدا کنید include /etc/nginx/conf.d/*.conf;. در زیر این دستورالعمل گزینه include /etc/nginx/sites-enabled/*;Save ( CTRL + O ) را اضافه کرده و سپس ( CTRL + X ) را ترک کنید.

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. با این دستور پرونده ای به نام example.com.confداخل /etc/nginx/sites-availableفهرست ایجاد کنید nano /etc/nginx/sites-available/example.com.confو کد زیر را کپی / چسباندن کنید:

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.com;
        root /var/www/html;
        index index.nginx-debian.html;
    
        ssl_certificate /etc/ssl/testing/certs/example.com.crt;
        ssl_certificate_key /etc/ssl/testing/private/example.com.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;
    }
    

    تبریک می گویم ، شما اکنون سرور وب HTTP / 2 را فعال کرده اید. اضافه کردن http2پارامتر به listenبخشنامه داخل میزبان مجازی HTTPS به شما HTTP / 2 پشتیبانی می کند.

  9. /etc/nginx/sites-available/example.com.confبا این دستور یک پیوند نمادین ایجاد کنید:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. نحو پیکربندی تست

    nginx -t
    
  11. Nginx را دوباره اجرا کنید تا تغییرات خود را اعمال کنید:

    systemctl restart nginx
    
  12. example.comدامنه را به /etc/hostsپرونده اضافه کنید

    echo '127.0.0.1    example.com' >> /etc/hosts
    

برای آزمایش میزبان مجازی شما به مرورگر مبتنی بر متن نیاز داریم - elinks.

  1. برای نصب elinks از دستور زیر استفاده کنید:

    apt install elinks
    
  2. برای آزمایش example.comمیزبان مجازی خود:

    elinks https://example.com
    
  3. برای خروج از مطبوعات elinks مرورگر س بر روی صفحه کلید خود را و سپس وارد کنید .

تست HTTP / 2

برای دیدن اینکه سرور پروتکل ها چه ساده ترین راه را تبلیغ می کنند ، استفاده از opensslجعبه ابزار است.

    openssl s_client -connect example.com:443 -nextprotoneg ''

در خروجی این دستور باید چیزی شبیه به این را مشاهده کنید:

    CONNECTED(00000003)
    Protocols advertised by server: h2, http/1.1      

برای دیدن HTTP / 2 در عمل می توانید از ابزارهای برنامه نویس مرورگر استفاده کنید. HTTP / 2 پروتکل است یا با نشان h2یا HTTP/2.0شناسه. پانل شبکه را در ابزارهای اختصاصی باز کنید و صفحه خود را تازه کنید.

نتیجه

حال باید بدانید که فعال سازی HTTP / 2 در پیکربندی Nginx چقدر "آسان" است ، اما این بخشی از تصویر کلی نیست. ابتدا باید در مورد فعال کردن TLS / SSL روی سرور خود با مجموعه های رمزنگاری قوی فکر کنید و مطمئن شوید که از رمزهای لیست سیاه استفاده نمی کنید . فقط بعد از فعال کردن TLS / SSL قوی روی سرور ، می توانید به فکر فعال کردن HTTP / 2 بروید .



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد