نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يمكن استخدام NGINX كخادم HTTP / HTTPS أو خادم وكيل عكسي أو خادم وكيل بريد أو موازن تحميل أو فاصل TLS أو خادم تخزين مؤقت. إنه نموذجي للغاية حسب التصميم. لديها وحدات أصلية ووحدات خارجية تم إنشاؤها من قبل المجتمع. مكتوب بلغة البرمجة C ، إنه برنامج سريع وخفيف الوزن للغاية.
ملاحظة : يحتوي NGINX على دفقين للإصدار يعملان بالتوازي - مستقر وخط رئيسي . يمكن استخدام كلا الإصدارين على خادم الإنتاج. من المستحسن استخدام الإصدار الرئيسي في الإنتاج.
يعد تثبيت NGINX من التعليمات البرمجية المصدر أمرًا "سهلًا" نسبيًا - قم بتنزيل أحدث إصدار من رمز مصدر NGINX وقم بتكوينه وإنشائه وتثبيته.
في هذا البرنامج التعليمي ، سأستخدم إصدار الخط الرئيسي ، وهو 1.13.1 في وقت الكتابة. قم بتحديث أرقام الإصدارات وفقًا لذلك عندما تتوفر إصدارات أحدث.
متطلبات الزامية:
المتطلبات الاختيارية:
إنشاء مستخدم عادي مع sudo
وصول .
التبديل إلى المستخدم الجديد:
su - <username>
تحديث النظام:
sudo apt update && sudo apt upgrade -y
NGINX هو برنامج مكتوب بلغة C ، لذلك نحتاج إلى تثبيت مترجم C (GCC).
sudo apt install build-essential -y
قم بتنزيل أحدث إصدار من شفرة مصدر NGINX واستخرجه:
wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz
قم بتنزيل شفرة مصدر تبعيات NGINX واستخراجها:
# PCRE version 4.4 - 8.40
wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.tar.gz
# zlib version 1.1.3 - 1.2.11
wget http://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.0.2 - 1.1.0
wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
قم بإزالة كافة .tar.gz
الملفات. نحن لسنا بحاجة إليها بعد الآن:
rm -rf *.tar.gz
انتقل إلى دليل مصدر NGINX:
cd ~/nginx-1.13.1
للحصول على المساعدة ، يمكنك سرد مفاتيح التكوين المتوفرة عن طريق تشغيل:
./configure --help
تكوين وتجميع وتثبيت NGINX:
./configure --prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=www-data \
--group=www-data \
--build=Ubuntu \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--with-openssl=../openssl-1.1.0f \
--with-openssl-opt=enable-ec_nistp_64_gcc_128 \
--with-openssl-opt=no-nextprotoneg \
--with-openssl-opt=no-weak-ssl-ciphers \
--with-openssl-opt=no-ssl3 \
--with-pcre=../pcre-8.40 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_sub_module \
--with-http_stub_status_module \
--with-http_v2_module \
--with-http_secure_link_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-debug \
--with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' \
--with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
make
sudo make install
قم بإزالة كافة الملفات التي تم تنزيلها من الدليل الرئيسي ، في هذه الحالة /home/username
:
cd ~
rm -r nginx-1.13.1/ openssl-1.1.0f/ pcre-8.40/ zlib-1.2.11/
تحقق من إصدار NGINX وخيارات وقت الترجمة:
sudo nginx -v && sudo nginx -V
# nginx version: nginx/1.13.0 (Ubuntu)
# built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
# built with OpenSSL 1.1.0f 25 May 2017
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx . . .
# . . .
# . . .
تحقق من بناء الجملة والأخطاء المحتملة:
sudo nginx -t
# Will throw this error nginx: [emerg] mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)
# Just create directory
mkdir -p /var/lib/nginx && sudo nginx -t
إنشاء ملف وحدة systemd لـ NGINX:
sudo vim /etc/systemd/system/nginx.service
انسخ / الصق المحتوى التالي:
ملاحظة : قد يختلف موقع ملف PID وثنائي NGINX اعتمادًا على كيفية تصنيف NGINX.
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
بدء وتمكين خدمة NGINX:
sudo systemctl start nginx.service && sudo systemctl enable nginx.service
تحقق مما إذا كان NGINX سيبدأ التشغيل بعد إعادة التشغيل:
sudo systemctl is-enabled nginx.service
# enabled
تحقق مما إذا كان NGINX قيد التشغيل:
sudo systemctl status nginx.service
ps aux | grep nginx
curl -I 127.0.0.1
أعد تشغيل Ubuntu VPS للتحقق من أن NGINX يبدأ تشغيله تلقائيًا:
sudo shutdown -r now
إنشاء ملف تعريف تطبيق UFW NGINX:
sudo vim /etc/ufw/applications.d/nginx
انسخ / الصق المحتوى التالي:
[Nginx HTTP]
title=Web Server (Nginx, HTTP)
description=Small, but very powerful and efficient web server
ports=80/tcp
[Nginx HTTPS]
title=Web Server (Nginx, HTTPS)
description=Small, but very powerful and efficient web server
ports=443/tcp
[Nginx Full]
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
الآن ، تحقق من إنشاء ملفات تعريف تطبيق UFW والتعرف عليها:
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
هذا هو. لديك الآن أحدث إصدار مثبت من NGINX. يتم تجميعه بشكل ثابت ضد بعض المكتبات الهامة مثل OpenSSL. غالبًا ما يكون إصدار OpenSSL للنظام قديمًا. باستخدام طريقة التثبيت هذه مع إصدار أحدث من OpenSSL ، يمكنك الاستفادة من الشفرات الجديدة مثل CHACHA20_POLY1305
والبروتوكولات مثل TLS 1.3 التي ستكون متاحة في OpenSSL 1.1.1
(التي لم يتم إصدارها).
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد