قم بإعداد NFS Share على دبيان
NFS هو نظام ملفات قائم على الشبكة يسمح لأجهزة الكمبيوتر بالوصول إلى الملفات عبر شبكة الكمبيوتر. يوضح هذا الدليل كيف يمكنك فضح المجلدات عبر NF
Nginx هو برنامج خادم ويب مفتوح المصدر مصمم مع التزامن العالي ، ويمكن استخدامه كخادم HTTP / HTTPS ، وخادم وكيل عكسي ، وخادم وكيل بريد ، وموازن تحميل برامج ، فاصل TLS ، خادم تخزين مؤقت والمزيد!
وهو جزء من برنامج معياري إلى حد كبير. حتى بعض الأجزاء التي تبدو "مضمنة" من البرنامج ، مثل GZIP أو SSL ، يتم إنشاؤها بالفعل كوحدات يمكن تمكينها وتعطيلها خلال وقت البناء.
يحتوي على وحدات أساسية (أصلية) ووحدات خارجية (خارجية) تم إنشاؤها بواسطة المجتمع. في الوقت الحالي ، هناك أكثر من مائة وحدة تابعة لجهات خارجية يمكننا استخدامها.
مكتوب بلغة C ، إنه برنامج سريع وخفيف الوزن.
يعد تثبيت Nginx من التعليمات البرمجية المصدر أمرًا سهلاً نسبيًا - قم بتنزيل أحدث إصدار من التعليمات البرمجية المصدر لـ Nginx ، وقم بتكوينه وإنشائه وتثبيته.
ستحتاج إلى اختيار ما إذا كنت تريد تنزيل الخط الرئيسي أو إصدار مستقر ، ولكن بنائه هو نفسه.
في هذا الدليل ، سنقوم بتجميع نسخة أساسية من Nginx على Debian 10 (المغفل). سنستخدم جميع الوحدات المتاحة في إصدار Nginx مفتوح المصدر.
ربما تسأل لماذا يقوم أحد بتجميع Nginx من مصدر عندما يمكنك استخدام الحزم المعدة. فيما يلي بعض الأسباب التي قد تجعلك ترغب في تجميع برنامج معين بنفسك:
يتوفر Nginx Open Source في نسختين:
يحتوي Nginx على نوعين من الوحدات التي يمكنك استخدامها: الوحدات الأساسية ووحدات الطرف الثالث.
يقوم مطورو Nginx الأساسيون ببناء وحدات أساسية ، وهم جزء من البرنامج نفسه.
يقوم المجتمع ببناء وحدات خارجية ، ويمكنك استخدامها لتوسيع الوظائف. هناك الكثير من الوحدات الخارجية المفيدة.
توجد وحدات ثابتة في Nginx من الإصدار الأول. تم تقديم الوحدات الديناميكية مع Nginx 1.9.11+ في فبراير 2016.
مع الوحدات الثابتة ، يتم إصلاح مجموعة من الوحدات التي تشكل ثنائي Nginx في وقت الترجمة بواسطة ./configure
البرنامج النصي. تستخدم الوحدات الثابتة --with-foo_bar_module
أو --add-module=PATH
بناء الجملة.
لتجميع وحدة أساسية (قياسية) كديناميكية نضيفها =dynamic
، على سبيل المثال --with-http_image_filter_module=dynamic
.
لتجميع وحدة نمطية لجهة خارجية على أنها ديناميكية ، نستخدم --add-dynamic-module=/path/to/module
بناء الجملة ، ثم نقوم بتحميلها باستخدام load_module
التوجيه في السياق العام nginx.conf
للملف.
بالمقارنة مع بعض برامج UNIX / Linux الأخرى ، فإن Nginx خفيف الوزن ولا يحتوي على العديد من تبعيات المكتبة. يعتمد تكوين البناء الافتراضي على 3 مكتبات فقط ليتم تثبيتها: OpenSSL / LibreSSL / BoringSSL و Zlib و PCRE.
ملاحظة : يمكن أيضًا تصنيف Nginx مقابل مكتبات التشفير LibreSSL و BoringSSL بدلاً من OpenSSL.
تحقق من إصدار دبيان.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
إنشاء مستخدم عادي مع sudo
وصول.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
ملاحظة : استبدل johndoe
باسم المستخدم الخاص بك .
التبديل إلى مستخدم جديد.
su - johndoe
قم بإعداد المنطقة الزمنية.
sudo dpkg-reconfigure tzdata
تحديث برنامج نظام التشغيل الخاص بك.
sudo apt update && sudo apt upgrade -y
قم بتثبيت الحزم اللازمة.
sudo apt install -y software-properties-common ufw
Nginx هو برنامج مكتوب بلغة C ، لذلك ستحتاج أولاً إلى تثبيت أداة مترجم. تثبيت build-essential
، git
و tree
.
sudo apt install -y build-essential git tree
قم بتنزيل أحدث إصدار رئيسي من شفرة مصدر Nginx وفك ضغط أرشيف شفرة المصدر. يتم توزيع شفرة مصدر Nginx كأرشيف مضغوط ، مثل معظم برامج Unix و Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
قم بتنزيل كود مصدر تبعيات Nginx الإلزامية واستخراجه.
# PCRE version 8.43
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz
# zlib version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz
تثبيت تبعيات Nginx الاختيارية.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
تنظيف جميع .tar.gz
الملفات. نحن لسنا بحاجة إليها بعد الآن.
rm -rf *.tar.gz
أدخل دليل مصدر Nginx.
cd ~/nginx-1.17.2
للحصول على أدلة وملفات قائمة المقاييس الجيدة التي تتكون منها شفرة مصدر Nginx tree
.
tree -L 2 .
انسخ الصفحة اليدوية إلى /usr/share/man/man8/
.
sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
ls /usr/share/man/man8/ | grep nginx.8.gz
# Check that man page for Nginx is working
man nginx
للحصول على المساعدة ، يمكنك الاطلاع على قائمة كاملة بخيارات وقت التجميع المحدثة لـ Nginx عن طريق تشغيل ما يلي.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
تكوين وتجميع وتثبيت Nginx.
./configure --prefix=/etc/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 \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=Debian \
--builddir=nginx-1.17.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-perl_modules_path=/usr/share/perl/5.26.1 \
--with-perl=/usr/bin/perl \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.43 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1c \
--with-openssl-opt=no-nextprotoneg \
--with-debug
make
sudo make install
بعد التجميع ، انتقل إلى ~
دليل منزلك ( ).
cd ~
Symlink /usr/lib/nginx/modules
إلى /etc/nginx/modules
. هذا هو المكان القياسي لوحدات Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
قم بطباعة إصدار Nginx وإصدار المترجم وتكوين معلمات البرنامج النصي.
sudo nginx -V
# nginx version: nginx/1.17.2 (Debian)
# built by gcc 8.3.0 (Debian 8.3.0-6)
# built with OpenSSL 1.1.1c 28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . .
# . . .
# . . .
إنشاء مجموعة نظام Nginx والمستخدم.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
# Check that user and group are created
sudo tail -n 1 /etc/passwd /etc/group /etc/shadow
تحقق من بنية Nginx والأخطاء المحتملة.
sudo nginx -t
# Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# Create NGINX cache directories and set proper permissions
sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*
# Re-check syntax and potential errors.
sudo nginx -t
أنشئ ملف وحدة Nginx systemd.
sudo vim /etc/systemd/system/nginx.service
تعبئة /etc/systemd/system/nginx.service
الملف بالمحتوى التالي.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
قم بتمكين Nginx للبدء في التمهيد وبدء Nginx على الفور.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
تحقق مما إذا كان Nginx سيبدأ تلقائيًا بعد إعادة التشغيل.
sudo systemctl is-enabled nginx.service
# enabled
تحقق من الحالة.
sudo systemctl status nginx.service
ملاحظة : يمكنك التحقق من تشغيل Nginx بالانتقال إلى نطاق موقعك أو عنوان IP في متصفح الويب. سترى صفحة ترحيب Nginx. هذا مؤشر على أن Nginx قيد التشغيل على VPS الخاص بك.
إنشاء ملف تعريف تطبيق UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
انسخ / الصق المحتوى التالي في /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 افتراضيًا بإنشاء .default
ملفات النسخ الاحتياطي /etc/nginx
. إزالة .default
الملفات من /etc/nginx
الدليل.
sudo rm /etc/nginx/*.default
وضع تسليط الضوء على بناء الجملة من تكوين Nginx لمحرر Vim في ~/.vim
.
# For regular non-root user
mkdir ~/.vim/
cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/
# For root user
sudo mkdir /root/.vim/
sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/
ملاحظة : من خلال القيام بالخطوة أعلاه ، ستحصل على بناء جملة لطيف يبرز عند تحرير ملفات تكوين Nginx في محرر Vim.
خلق conf.d
، snippets
، sites-available
و sites-enabled
الدلائل في /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
تغيير الأذونات وملكية المجموعة لملفات سجل Nginx.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
إنشاء تكوين دوران السجل لـ Nginx.
sudo vim /etc/logrotate.d/nginx
قم بملء الملف بالنص التالي ، ثم احفظه واخرج منه.
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
إزالة كافة الملفات التي تم تنزيلها من الدليل الرئيسي.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
هذا هو. الآن ، لديك أحدث إصدار من Nginx مثبتًا. يتم تجميعه بشكل ثابت ضد بعض المكتبات الهامة مثل OpenSSL. غالبًا ما يكون إصدار OpenSSL الذي يوفره النظام قديمًا. باستخدام طريقة التثبيت هذه مع إصدار أحدث من OpenSSL ، يمكنك الاستفادة من الأصفار الحديثة مثل CHACHA20_POLY1305
والبروتوكولات مثل TLS 1.3 المتوفرة في OpenSSL 1.1.1
. علاوة على ذلك ، من خلال تجميع البيانات الثنائية الخاصة بك ، يمكنك تخصيص الوظائف التي ستوفرها Nginx الخاصة بك ، وهي أكثر مرونة بكثير من تثبيت برنامج ثنائي تم إنشاؤه مسبقًا.
NFS هو نظام ملفات قائم على الشبكة يسمح لأجهزة الكمبيوتر بالوصول إلى الملفات عبر شبكة الكمبيوتر. يوضح هذا الدليل كيف يمكنك فضح المجلدات عبر NF
مقدمة: التأليف والإصدار الموزع على الويب (WebDAV) هو امتداد HTTP يوفر إطار عمل لإنشاء الملفات وتعديلها عن بُعد على
مقدمة يتميز MySQL بميزة رائعة تعرف باسم طرق العرض. المشاهدات هي استعلامات مخزنة. اعتبرها اسمًا مستعارًا لاستعلام طويل. في هذا الدليل ،
ستعلمك هذه المقالة كيفية إعداد سجن سريع على دبيان. أفترض أنك تستخدم Debian 7.x. إذا كنت تقوم بتشغيل دبيان 6 أو 8 ، فقد يعمل هذا ، ولكن
مقدمة طريقة سهلة لإعداد خادم VPN على دبيان هي PiVPN. PiVPN هو أداة تثبيت وغلاف لـ OpenVPN. يخلق أوامر بسيطة لك
استخدام نظام مختلف؟ Brotli هو طريقة ضغط جديدة مع نسبة ضغط أفضل من Gzip. يتم استضافة رمز المصدر الخاص به علانية على Github. ثي
استخدام نظام مختلف؟ Neos عبارة عن منصة تطبيق محتوى مع CMS وإطار تطبيق في جوهرها. سيوضح لك هذا الدليل كيفية التثبيت
مقدمة Cacti هي أدوات مراقبة ورسوم بيانية مفتوحة المصدر تعتمد بالكامل على بيانات RRD. من خلال Cacti ، يمكنك مراقبة أي نوع من أنواع الأجهزة تقريبًا
Go (تُعرف أيضًا باسم Golang) هي لغة برمجة مكتوبة بشكل ثابت ومجمعة على شكل حرف C تم تطويرها بواسطة Google. جعلت البساطة وتعدد الاستخدامات ب
استخدام نظام مختلف؟ InvoicePlane هو تطبيق فواتير مجاني ومفتوح المصدر. يمكن العثور على رمز المصدر الخاص به في مستودع Github هذا. هذا الدليل
استخدام نظام مختلف؟ Reader Self 3.5 هو قارئ RSS بسيط ومرن ومفتوح ومفتوح المصدر ومستضاف ذاتيًا وبديل Google Reader. القارئ سيل
استخدام نظام مختلف؟ BookStack عبارة عن نظام أساسي بسيط وسهل الاستخدام لتنظيم المعلومات وتخزينها. BookStack مجاني تمامًا ومفتوح
مقدمة FFmpeg هي أداة سطر أوامر مفتوحة المصدر لتشفير / فك تشفير الفيديو والصوت. ميزاته الرئيسية هي سرعة عالية وجودة وفيل صغير
استخدام نظام مختلف؟ TermRecord هو أداة بسيطة مفتوحة المصدر مكتوبة بلغة Python ، تسمح بحفظ الجلسات النهائية إلى مشاركة ذاتية سهلة المشاركة
استخدام نظام مختلف؟ Matomo (Piwik سابقًا) هو نظام أساسي مفتوح المصدر للتحليلات ، وهو بديل مفتوح لبرنامج Google Analytics. مصدر Matomo مستضاف
تقدم هذه المقالة ملخصًا موجزًا لأنظمة تشغيل الخادم المقدمة كنماذج على Vultr. CentOS CentOS هو إصدار مفتوح المصدر من RHEL (Re
استخدام نظام مختلف؟ X-Cart هي منصة تجارة إلكترونية مفتوحة المصدر مرنة للغاية مع الكثير من الميزات والتكاملات. كود مصدر X-Cart مضيف
Munin عبارة عن أداة مراقبة لمسح العمليات والموارد في جهازك وتقديم المعلومات في الرسوم البيانية من خلال واجهة الويب. استخدم ما يلي
استخدام نظام مختلف؟ Tiny Tiny RSS Reader هو قارئ ومجمّع أخبار مستوحى ذاتيًا ومفتوح المصدر ومستضاف على الويب (RSS / Atom) ، مصمم خصيصًا
مقدمة في هذا البرنامج التعليمي ، سنغطي عملية إضافة نطاق IP / شبكة فرعية كاملة إلى خادم Linux يعمل بنظام CentOS أو Debian أو Ubuntu. الموكيز
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد