الرجال الصغار ينشرون php f. البطن عند الرجال ينشرون اقتباسًا لوضع php. لماذا ينمو البطن؟ النشر لجذب الزوار

اليوم، الإنترنت هو المكان الذي يمكنك من خلاله كسب المال، وفي هذه المقالة، يمكنك مدونة، أريد أن أتحدث عن طريقة جديدة لكسب المال، والتي يمكن أن توفر أيضًا أموالًا جيدة جدًا.

بالطبع، إذا كنت قد قرأت منشوراتي السابقة، فأنت تدرك بالفعل أنه يمكنك كسب المال على الإنترنت بطرق متعددة. اليوم، دعونا نركز على كسب المال الذي يسمى "النشر".

ماذا يعني النشر؟ لا أريد أن أخبرك بما تعنيه هذه الكلمة من لغة أجنبية، لكنني سأكتبها كما أفهمها بنفسي. النشر هو كتابة رسائل ومراجعات وأيضًا مراجعات صغيرة لهؤلاء الأشخاص وعلى تلك المواقع التي تتطلب ذلك.

على سبيل المثال، ذهبت إلى متجر الأجهزة المنزلية عبر الإنترنت واشتريت شيئًا هناك، على سبيل المثال ثلاجة. لذا، إذا كنت راضيًا عن السعر، وإذا كانت جودة الثلاجة ممتازة، فما عليك سوى كتابة رأيك في سطر التعليقات. لذا، في الأساس، قمت بنشر رأيك.

اتضح أنك اشتريت عنصرًا عالي الجودة وقمت بعمل جيد للمتجر عبر الإنترنت. يزور العديد من الأشخاص الذين يعيشون "حياة نشطة على الإنترنت" المنتديات المواضيعية والمدونات وبوابات الأخبار، حيث ينشرون تعليقاتهم أو أفكارهم.

إذن هذا ما أقصده... إذا كنت مثل هذا الشخص وغالبًا ما تقضي وقتًا في مثل هذه الخدمات عبر الإنترنت، فيمكنك كسب المال مما يسمى بالنشر. ستكتب مراجعات وتعليقات وأفكارك وأفكارك الخاصة، وستدفع لك أموالًا عادية جدًا مقابل ذلك.

هل ترغب في كسب المال مثل هذا؟؟ اكتب في التعليقات ما إذا كنت ترغب في كسب المال مثل هذا أم لا. من المحتمل جدًا أنك تكسب المال بالفعل بهذه الطريقة، لذا اكتب انطباعاتك في التعليقات.

حسنًا، سنعود إلى أغنامنا..

يمكن لكل شخص لديه إمكانية الوصول إلى الإنترنت أن يكسب أموالاً جيدة حقًا، وهذه ليست أسطورة.

بالمناسبة، بالنسبة لأولئك الأشخاص الذين ما زالوا لا يعتقدون أنه يمكنك كسب المال على الإنترنت، أوصي بقراءة مقالاتي:

هذا كل شيء، وداعاً للجميع، أراكم في مقالاتي القادمة.

بإخلاص، يوري فاتسينكو!

في هذه المقالة، سأتحدث عن كيفية جعل مدونة WordPress الخاصة بي تطير عبر التخزين المؤقت الذكي والضغط والتحسينات الأخرى على جانب الخادم والعميل. في وقت كتابة هذا التقرير، كانت خصائص VDS كما يلي:

وحدة المعالجة المركزية: 1 × 2 جيجا هرتز
القرص الصلب: 10 جيجابايت
ذاكرة الوصول العشوائي: 512 ميجابايت
نظام التشغيل: ديبيان 8 x64

مخطط تشغيل النظام كما يلي:

وصف عمل الدائرة

بالنسبة لزوار الموقع، تتم إعادة التوجيه إلى HTTPS، حيث يعمل nginx كوكيل لـ Varnish، وعند إخراج nginx، بالإضافة إلى تنفيذ اتصال HTTPS، يحدث ضغط gzip للبيانات المرسلة إلى المستخدم. العنصر التالي في هذا النظام هو مُسرع Varnish HTTP، الذي يستمع للاتصالات على المنفذ 6081. عند تلقي طلب من العميل، فإنه يبحث عن عنوان URL المطلوب في ذاكرة التخزين المؤقت، وإذا تم العثور عليه، فإنه يرسله على الفور إلى الواجهة الأمامية. وبالتالي، إذا كان الملف المطلوب موجودًا في ذاكرة التخزين المؤقت، فسيتم تقليل سرعة طلب الصفحة إلى سرعة طلب البيانات الثابتة. إذا لم يتم العثور على الملف المطلوب في ذاكرة التخزين المؤقت، فسيقوم Varnish بتمرير الطلب إلى الواجهة الخلفية. يقوم Varnish أيضًا بتنفيذ التحسين من جانب العميل - هنا يتم تعيين رؤوس Cache-Control وExpires للبيانات الثابتة، مما يشير إلى المتصفح بالحاجة إلى تخزين هذه البيانات مؤقتًا على جانب العميل. وهذا يقلل من وقت تحميل الموقع ويقلل الحمل على الخادم.

الواجهة الخلفية هي nginx مرة أخرى، في انتظار الاتصالات على 127.0.0.1:81. يتم تنفيذ تفسير PHP باستخدام FPM. إصدار PHP هو 5.6 مع تمكين مسرع OPcache افتراضيًا. باعتباره نظام إدارة قواعد البيانات - MariaDB 10، وهو أحد أفضل أنظمة إدارة قواعد البيانات (DBMS) أداءً واستهلاكًا للذاكرة بين شوكات MySQL. يتم استخدام MyISAM كمحرك جدول، نظرًا لأن الكتابة نادرًا ما تتم في الغالب للقراءة، ولهذا السبب تم تحسين هذا المحرك بشكل أكبر. عن طريق تعطيل محرك InnoDB، يتم حفظ ذاكرة الوصول العشوائي. أخيرًا، يعمل WordPress كنظام إدارة محتوى (CMS) مع تثبيت البرنامج الإضافي Varnish HTTP Purge، حيث يرسل طلبات PURGE إلى عناوين الصفحات التي تم إجراء التغييرات عليها، مما يؤدي إلى مسح ذاكرة التخزين المؤقت لـ Varnish لهذه الصفحات. وبالتالي، يحصل المستخدم دائمًا على نسخة محدثة من الموقع. بعد ذلك، سأتحدث بالتفصيل عن تثبيت هذه المكونات وتكوينها، بالإضافة إلى المشكلات التي واجهتها.

تثبيت وتكوين nginx

ثَبَّتَ:

Apt-احصل على تثبيت nginx
محتويات التكوين الرئيسي /etc/nginx/nginx.conf:

# المستخدم والمجموعة التي سيتم إطلاق العملية نيابةً عنهما user www-data www-data; # يوصى بضبط عدد العاملين في الإصدارات الجديدة على autoworker_processes auto; error_log /var/log/nginx/error.log; معرف المنتج /var/run/nginx.pid; الأحداث ( # الحد الأقصى لعدد الاتصالات لعامل واحد عامل_اتصالات 1024؛ # طريقة اختيار الاتصال (بالنسبة لـ FreeBSD ستكون kqueue) استخدم epoll؛ # قبول الحد الأقصى لعدد الاتصالات الممكنة multi_accept on؛) http ( # حدد ملفًا بأنواع mime و حدد نوع البيانات الافتراضي include /etc/nginx/mime.types؛ default_type application/octet-stream؛ # تعطيل إخراج إصدار nginx في استجابة server_tokens off؛ # طريقة إرسال البيانات لإرسال البيانات أكثر كفاءة من قراءة + كتابة إرسال ملف on؛ # يحد من كمية البيانات التي يمكن نقلها في وقت واحد، اتصل بـ sendfile(). من الضروري التخلص من الموقف عندما يمكن لاتصال واحد أن يتولى العامل بالكامل sendfile_max_chunk 128k؛ # إرسال الرؤوس وبداية الملف في واحد حزمة tcp_nopush on؛ tcp_nodelay on؛ # إعادة تعيين الاتصال إذا توقف العميل عن قراءة الاستجابةsetting_timedout_connection on؛ # قطع الاتصال بانتهاء المهلة عند تلقي رأس الطلب ونصه Client_header_timeout 3; client_body_timeout 5; # قم بإنهاء الاتصال إذا لم يستجب العميل خلال 3 ثوانٍ send_timeout 3; # تعيين مخزن مؤقت لرأس الطلب ونصه Client_header_buffer_size 2k; client_body_buffer_size 256 كيلو؛ # الحد الأقصى لحجم الجسم عند الطلب client_max_body_size 12m; # تعطيل سجل الوصول access_log off; # اتصال التكوينات الإضافية تشمل /etc/nginx/conf.d/*.conf؛ )
لنقم بإنشاء ملف إعدادات الواجهة الخلفية /etc/nginx/conf.d/backend.conf:

الخادم ( # انتظر الاتصال المحلي على المنفذ 81، استمع 127.0.0.1:81؛ # الدليل الجذر وملف الفهرس root /var/www/site.ru/public_html; Index Index.php; # تمكين ضغط gzip على مخرجات الواجهة الخلفية. ستذهب ذاكرة التخزين المؤقت للنسخ المضغوطة بالفعل من الملفات. هنا يحدث الضغط عند مستوى الضغط 9. يرجى ملاحظة أن النص/العادي ليس من بين الأنواع، فنحن نقوم بضغطه في الواجهة الأمامية عند مستوى الضغط 1 لتجنب الحمل العالي على وحدة المعالجة المركزية عند العودة الديناميكية تشغيل gzip للبيانات؛ gzip_comp_level 9؛ gzip_min_length 512؛ gzip_buffers 8 64k؛ gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml؛ gzip_proxied Any; # Hostname server_name site .ru www.site.ru; # رفض الوصول إلى موقع الملفات المخفية ~ /\.( Deny all; ) # رفض الوصول إلى موقع البرامج النصية المحملة ~* /(?:uploads|files)/.* \.php$ ( Deny all; ) # ابحث عن URI المطلوب في ثلاثة مسارات location / (try_files $uri $uri/ /index.php?$args; ) # أضف شرطة مائلة زائدة للطلبات */wp-admin rewrite /wp-admin$ $scheme://$host$uri/ Permanent; location ~ \.php$ ( # إذا كان هناك خطأ 404، فاعرض الصفحة التي تم إنشاؤها بواسطة WordPress، Try_files $uri =404; # عند الوصول إلى php، قم بتمريرها إلى FPM للتفسير، بما في ذلك fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix :/var/run/ php5-fpm.sock; ) )
فيما يتعلق بموضوع الوصف التفصيلي لإعداد HTTPS في nginx، أوصي بقراءة هذه المقالة: habrahabr.ru/post/252821
قم بإنشاء ملف إعدادات الواجهة الأمامية /etc/nginx/conf.d/frontend.conf:

الخادم ( # إعادة التوجيه إلى HTTPS الاستماع REAL_IP:80; server_name site.ru www.site.ru; إرجاع 301 https://$server_name$request_uri; ) الخادم ( الاستماع 93.170.105.102:443 ssl; server_name site.ru www.site .ru; # إنشاء اتصالات مستمرة مع الزائرين keepalive_timeout 60 60; # ضغط البيانات قبل إرسالها إلى العميل. يرجى ملاحظة أنه يوجد هنا نص/عادي فقط، أما بالنسبة لضغط البيانات الأخرى فيتم تطبيقه على الواجهة الخلفية عند مستوى ضغط أعلى ، وبعد ذلك يتم إرسال هذه البيانات إلى ذاكرة التخزين المؤقت. تم تصميمها لتجنب تحميل وحدة المعالجة المركزية عند ضغط المستندات الديناميكية. gzip on; gzip_comp_level 1; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/plain; gzip_proxied Any; # إعطاء الأفضلية للأصفار المحددة على الخادم ssl_prefer_server_ciphers on ; # ضبط مدة جلسة TLS على دقيقتين ssl_session_cache Shared:TLS:2m; ssl_session_timeout 2m; # تعيين ملف يحتوي على شهادة الموقع وشهادة CA ssl_certificate /etc/ssl/combined.crt; # تحديد المفتاح الخاص ssl_certificate_key /etc/ssl/3_site.ru.key; # ملف بمعلمات Diffie-Hellman ssl_dhparam /etc/ssl/dh2048.pem; # البروتوكولات المدعومة ssl_protocols TLSv1.2 TLSv1.1 TLSv1; # مجموعات التشفير، تتضمن هذه المجموعة تشفيرات سرية للأمام ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+ AESGCM :DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS; # تمرير رأس Strict-Transport-Secutiry add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; location / ( # الوكيل إلى الورنيش proxy_pass http://127.0.0.1:6081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port 443; ) )
دعنا نعيد قراءة إعدادات nginx:

إعادة تحميل خدمة nginx
والآن عندما نحاول الدخول إلى الموقع سنرى خطأ 502. وهذا أمر طبيعي، لأن Varnish لم يعمل بعد.

تثبيت وتكوين الورنيش

تثبيت الورنيش:

Apt-Get تثبيت الورنيش
يوجد ملف معلمات التشغيل هنا - /etc/default/varnish. في DAEMON_OPTS قمنا بتعيين المعلمات التالية:

DAEMON_OPTS="-a:6081 \ -T 127.0.0.1:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,128m"
-a - يضبط المنفذ الذي سيقبل عليه Varnish الاتصالات، في حالتنا من الواجهة الأمامية - nginx؛
-T - يتم تشغيل لوحة الإدارة هنا، مزيد من التفاصيل في وصف علامة -S؛
-f - ملف بتكوين VCL - لغة خاصة مصممة لتحديد قواعد معالجة الطلبات والتخزين المؤقت في Varnish؛
-S - يحتوي الورنيش على لوحة إدارة. لتسجيل الدخول، يجب عليك تشغيل الأمر varnishadm، ويجب أن يكون لدى المستخدم حقوق قراءة الملف /etc/varnish/secret للمصادقة؛
-s يشير إلى موقع تخزين ذاكرة التخزين المؤقت وحجمه، في هذه الحالة 128 ميجا بايت في ذاكرة الوصول العشوائي.

كما كنت قد فهمت بالفعل، فإن الشيء الأكثر إثارة للاهتمام ينتظرنا في ملف قواعد معالجة الطلبات. عند بدء عملية الورنيش، يتم تجميع هذا الملف. يستخدم VCL عدة أقسام فرعية من الوظائف التي تصف هذه القواعد. سأخبركم بإيجاز عنهم، وأوصي بقراءة الوصف الكامل على الموقع الرسمي.

فرعي vcl_recv- يتم استخدام هذه الوظيفة عندما يأتي طلب من العميل؛
فرعي vcl_pass- يتم تنفيذه عندما يجب تمرير طلب العميل مباشرة إلى الواجهة الخلفية، دون تخزين مؤقت أو البحث عن تطابق في ذاكرة التخزين المؤقت؛
sub vcl_hash- يحدد قواعد التخزين المؤقت؛ يمكنك استخدام عدة مخازن لنفس المستند، اعتمادًا على ظروف مختلفة، على سبيل المثال، ما إذا كان العميل يدعم الضغط، أو بعض ميزات العميل الأخرى. في حالتنا، لن يتم استخدامه، نظرًا لأن لدينا عميلًا واحدًا فقط لـ Varnish - nginx في الواجهة الأمامية؛
sub vcl_backend_response- تُستخدم هذه الوظيفة عندما يأتي طلب من الواجهة الخلفية (nginx)؛
sub vcl_deliver- يُستخدم مباشرة قبل إرسال البيانات إلى العميل، على سبيل المثال، لإضافة/تغيير الرؤوس.

يمكن تمثيل مخطط تشغيل مكونات VCL على النحو التالي:

إذا تم الوصول إلى الواجهة الخلفية من خلال وظيفة vcl_miss، فسيتم إرسال استجابة الواجهة الخلفية أيضًا إلى ذاكرة التخزين المؤقت. اللغة نفسها تشبه إلى حد كبير لغة C. لنبدأ في إعدادها. افتح الملف /etc/varnish/default.vcl وابدأ بالبرمجة:

# نعلم المترجم أن الإصدار الجديد من VCL 4 يستخدم vcl 4.0؛ # إعدادات الواجهة الخلفية الافتراضية ( .host = "127.0.0.1"; .port = "81"; ) # نطاق عناوين IP/المضيفين المسموح لهم بتنفيذ طلبات PURGE لمسح ذاكرة التخزين المؤقت ACL purge ("localhost"; "127.0.0.1"). 0.1" ; ) # تلقي طلب من العميل sub vcl_recv ( # السماح بمسح ذاكرة التخزين المؤقت للنطاق أعلاه if (req.method == "PURGE") ( # إذا لم يكن الطلب من القائمة، فقم بتوسيع if (! client.ip ~ purge) ( return(synth (405, "IP هذا غير مسموح له بإرسال طلبات PURGE.")); ) return (purge); ) # تخطي طلبات POST والصفحات ذات التفويض الأساسي if (req.http. التفويض || req.method = = "POST") ( return (pass); ) # تخطي صفحة المشرف وتسجيل الدخول if (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true ") ( return (pass) ; ) # تخطي خريطة الموقع وملف الروبوتات، يتم إنشاء خريطة الموقع الخاصة بي بواسطة البرنامج الإضافي لخرائط Google XML if (req.url ~ "sitemap" || req.url ~ "robots") ( return ( pass);) # احذف ملفات تعريف الارتباط التي تحتوي على "has_js" و"__*" التي تمت إضافتها بواسطة CloudFlare وGoogle Analytics لأن Varnish لن يقوم بتخزين الطلبات التي تحتوي على ملفات تعريف الارتباط. set req.http.Cookie = regsubal(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", ""); # إزالة البادئة "؛" في ملفات تعريف الارتباط، إذا تم اكتشافها فجأة، قم بتعيين req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); # إزالة ملفات تعريف الارتباط Quant Capital (المضافة بواسطة بعض المكونات الإضافية) set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(;)؟", ""); # حذف مجموعة ملفات تعريف الارتباط wp-settings-1 req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(;)؟", ""); # حذف مجموعة ملفات تعريف الارتباط wp-settings-time-1 req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+()؟", ""); # إزالة مجموعة ملفات تعريف الارتباط للاختبار wp req.http.Cookie = regsubal(req.http.Cookie, "wordpress_test_cookie=[^;]+(;)؟", ""); # إزالة ملفات تعريف الارتباط التي تتكون من مسافات فقط (أو فارغة تمامًا) if (req.http.cookie ~ "^ *$") ( unset req.http.cookie; ) # بالنسبة للمستندات الثابتة، قم بإزالة جميع ملفات تعريف الارتباط، واتركها مخزنة مؤقتًا if (req .url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico|woff|svg|htm|html)") (إلغاء تعيين req.http.cookie; ) # If يتم تعيين ملفات تعريف الارتباط "Wordpress_" أو "comment_" وننتقل مباشرة إلى الواجهة الخلفية if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") ( return (pass); ) # إذا كان ملف تعريف الارتباط لم يتم العثور عليه، قم بإزالة هذه المعلمة من الطلب الوارد على هذا النحو if (!req.http.cookie) ( unset req.http.cookie; ) # لا تقم بتخزين الطلبات مع ملفات تعريف الارتباط المثبتة، لم يعد هذا ينطبق على WordPress if (req. http. التفويض || req.http.Cookie) ( # غير قابل للتخزين المؤقت بشكل افتراضي return (pass); ) # تخزين كل شيء آخر في ذاكرة التخزين المؤقت return (hash); ) sub vcl_pass ( return (fetch); ) sub vcl_hash ( hash_data(req.url); return (lookup); ) # تلقي استجابة من الواجهة الخلفية الفرعية vcl_backend_response ( # إزالة الرؤوس غير الضرورية unset beresp.http.Server; unset beresp. http.X-Powered-By; # لا تقم بتخزين الروبوتات وخريطة الموقع مؤقتًا if (bereq.url ~ "sitemap" || bereq.url ~ "robots") ( set beresp.uncacheable = true; set beresp.ttl = 30s; return ( Delivery); ) # بالنسبة للملفات الثابتة التي تخدمها الواجهة الخلفية... if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg| htm |html") ( # حذف جميع ملفات تعريف الارتباط unset beresp.http.cookie; # تعيين فترة التخزين في ذاكرة التخزين المؤقت - مجموعة أسبوع beresp.ttl = 7d; # تعيين رؤوس التحكم في ذاكرة التخزين المؤقت وانتهاء الصلاحية، لإخبار المتصفح بأن هذه تستحق الملفات حفظها في ذاكرة التخزين المؤقت للعميل وعدم زيادة التحميل على خادمنا unset beresp.http.Cache-Control؛ set beresp.http.Cache-Control = "public, max-age=604800"؛ set beresp.http.Expires = now + beresp.ttl ; ) # لا تقم بتخزين صفحات المشرف وتسجيل الدخول مؤقتًا if (bereq.url ~ "wp-(login|admin)" || bereq.url ~ "preview=true") ( set beresp.uncacheable = true; set beresp.ttl = 30s; return (deliver); ) # السماح بتعيين ملفات تعريف الارتباط فقط عند الوصول إلى هذه المسارات، وسيتم قطع كل شيء آخر إذا ( !( bereq.url ~ "(wp-login|wp-admin|preview=true)")) ( unset beresp.http.set-cookie; ) # لا تقم بتخزين نتيجة الاستجابة لطلب POST أو التفويض الأساسي if (bereq.method = = "POST" || bereq.http.Authorization) ( set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); ) # لا تقم بتخزين نتائج البحث مؤقتًا if (bereq.url ~ "\?s=" )( set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); ) # لا تقم بتخزين صفحات الخطأ في ذاكرة التخزين المؤقت، فقط الأشياء الضرورية في ذاكرة التخزين المؤقت! if (beresp.status != 200) ( set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); ) # قم بتخزين كل شيء آخر في ذاكرة التخزين المؤقت ليوم واحد set beresp.ttl = 1d; # عمر ذاكرة التخزين المؤقت بعد انتهاء صلاحية TTL الخاص بها beresp.grace = 30s; العودة (تسليم) ؛ ) # الإجراءات قبل إعادة النتيجة إلى المستخدم الفرعي vcl_deliver ( # إزالة الرؤوس غير الضرورية unset resp.http.X-Powered-By; unset resp.http.Server; unset resp.http.Via; unset resp.http.X-Varnish ؛ إرجاع (تسليم)؛)
ثم نقوم بتشغيل الأمر:

إعادة تشغيل ورنيش الخدمة
الآن، انتقل إلى موقعنا في المتصفح، وسوف نرى ملف Index.php، الذي يجب إنشاؤه أولاً.

مشكلة الورنيش وديبيان 8
ماذا لو كنت تريد تغيير المنفذ الذي سيقبل فيه Varnish الاتصالات الواردة أو تغيير حجم ذاكرة التخزين المؤقت. بناءً على الوثائق الرسمية، تحتاج إلى تغيير الملف باستخدام معلمات تشغيل Varnish الموجودة على المسار: /etc/default/varnish وإعادة تشغيل الخدمة. لكن لا! لن يتغير شيء، وإذا ذهبنا إلى الأعلى وقمنا بالضغط على المفتاح "c"، فسنرى أن الخدمة تعمل بنفس الإعدادات. الشيء هو أن الإصدار الجديد من Debian يستخدم systemd بدلاً من init.d كنظام تهيئة، وبالتالي تحتاج إلى الانتقال إلى الملف /lib/systemd/system/varnish.service وتحديد نفس معلمات التشغيل في توجيه ExecStart هناك:

الوصف=مسرع HTTP الورنيش النوع=forking LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStartPre=/usr/sbin/varnishd -C -f /etc/varnish/default.vcl ExecStart=/usr/sbin/varnishd -a:6081 -T 127.0. 0.1:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,128m ExecReload=/usr/share/varnish/reload-vcl WantedBy=multi-user.target
بعد الحفظ، قم بتشغيل الأوامر التالية لتفعيل التغييرات:

إعادة تشغيل ورنيش خدمة Systemctl daemon-Reload
في الوقت الحالي، تم تعيين هذه المشكلة للمطورين، ومن غير المعروف متى وكيف سيحلونها، لذلك فقط في حالة إجراء نفس التغييرات في كلا الملفين حتى لا يتعطل كل شيء بعد يوم واحد من التحديث.

تثبيت وتكوين PHP-FPM

قم بتثبيت FPM ومكتبة PHP للعمل مع نظام إدارة قواعد البيانات (DBMS):

Apt-الحصول على تثبيت php5-fpm php5-mysqlnd
انتقل إلى ملف التكوين /etc/php5/fpm/pool.d/www.conf وقم بتغيير التوجيه:

الاستماع = 127.0.0.1:9000
الى الآتى \ الى القادم \ الى الم:

الاستماع = /var/run/php5-fpm.sock
في نفس الملف قمنا بضبط إعدادات العامل:

; تغيير عدد العمال ديناميكيا مساء = ديناميكي ; لا يمكن أن يكون الحد الأقصى لعدد العمال الذين تم إنشاؤهم تحت التحميل أقل منpm.max_spare_servers. pm.max_children = 10؛ كم عدد العمال الذين سيتم إطلاقهم في FPM startpm.start_servers = 1؛ الحد الأدنى لعدد العمال الاحتياطيين (يبقى في الذاكرة عند عدم وجود تحميل)pm.min_spare_servers = 1؛ الحد الأقصى لعدد العمال الاحتياطيين (في حالة الخمول، سيتم إنهاء العمال المتبقين غير المستخدمين)pm.max_spare_servers = 3؛ الحد الأقصى لعدد الطلبات التي يقدمها عامل واحد قبل إعادة التشغيل PM.max_requests = 500
تغيير عدة توجيهات في /etc/php5/fpm/php.ini
upload_max_filesize = 10M post_max_size = 12Mallow_url_fopen = Off
تم تعيين post_max_size أكبر قليلاً من upload_max_filesize، حيث أنه بالإضافة إلى الملف، يحتوي الطلب على بيانات أخرى.
هنا، باستخدام التوجيهallow_url_fopen، نحظر تنفيذ البرامج النصية الموجودة عن بُعد (إزالة إمكانية استغلال ثغرة التضمين عن بُعد).

خدمة إعادة تحميل php5-fpm
الآن قم بإنشاء ملف يُخرج phpinfo() وقم بالوصول إليه في المتصفح، يجب أن يعمل كل شيء. لا تنس أنه تم تخزينه مؤقتًا بالفعل في Varnish وإذا قمت بتغيير تكوين PHP، فلن يتم تحديثه في متصفحك. يمكنك كتابة قاعدة لتخطي هذا الملف في Varnish، أو أثناء الاختبارات، لا يمكنك استخدام وكيل Varnish، ولكن مباشرة الواجهة الخلفية على المنفذ 81.

تثبيت وتكوين MariaDB

لقد اخترت نظام إدارة قواعد البيانات هذا نظرًا لأدائه الأفضل وقدرته على تحمل الأحمال الثقيلة، مع استخدام ذاكرة وصول عشوائي أقل مقارنةً بـ MySQL، فضلاً عن توافقه الكامل مع WordPress. التثبيت بسيط للغاية، حيث سيطلب منك كلمة مرور للمستخدم الجذر.

Apt-get install mariadb-server
أستخدم MyISAM كمحرك للجداول، نظرًا لحقيقة أن الكتابة إلى الجدول نادرًا ما تتم، ويظهر MyISAM أداءً أفضل عند القراءة. لقد قمت بتعطيل دعم InnoDB تمامًا لتحرير ذاكرة الوصول العشوائي. يتم تخزين الإعدادات في الملف /etc/mysql/my.cnf. سأصف فقط تلك التوجيهات التي قمت بتغييرها:

# ذاكرة تخزين مؤقت للعمل مع المفاتيح والفهارس key_buffer = 64M # ذاكرة تخزين مؤقت للاستعلام query_cache_size = 32M # تثبيت MyISAM كمحرك قياسي default-storage-engine=MyISAM # تعطيل محرك InnoDB Skip-innodb
بعد حفظ التغييرات، أعد تشغيل الخدمة:

إعادة تشغيل خدمة MySQL

إعداد WordPress - البرنامج المساعد Varnish HTTP Purge

قم بتثبيت المكوّن الإضافي "Varnish HTTP Purge" في لوحة إدارة WP. الآن، عند تحديث البيانات، سيتم إرسال طلب PURGE إلى الصفحات التي تم تغييرها، ومسح ذاكرة التخزين المؤقت في Varnish، وسيتم تحديث البيانات دائمًا للزوار.

تحسين إضافي

لتحسين جانب العميل مع Varnish، نطلب من المتصفح تخزين البيانات الثابتة في ذاكرة التخزين المؤقت المحلية للعميل. ولكن إذا كنت تريد المزيد من التحسين، فانتقل إلى Developers.google.com/speed/pagespeed/insights وأدخل عنوان URL لموقعك أو حتى صفحة معينة. سيتم تزويدك بقائمة من التوصيات، كما سيتم تقديم أرشيف يحتوي على إصدارات مضغوطة من أنماط CSS وJS الخاصة بك. استبدلها على موقع الويب الخاص بك واحصل على سرعة تحميل أسرع نظرًا لانخفاض كمية البيانات المنقولة، كما سيتم أيضًا تقليل التحميل على الخادم والمساحة التي تشغلها هذه الملفات في ذاكرة التخزين المؤقت.

كيفية التعامل مع المستندات المطلوبة من خوادم الطرف الثالث، مثل الخطوط أو مكتبة jquery؟ يمكنك نقلها إليك، وهنا، بسبب إنشاء اتصال بخادم واحد فقط، ستزداد سرعة تحميل الصفحة، ومع ذلك، ستزداد قائمة الطلبات والتحميل الإجمالي. الخيار الذي تختاره - قرر بنفسك، اعتمادًا على الحمل على الخادم الخاص بك وكسلك.

الحد الأدنى

بالنسبة للجزء الأكبر، كان لضغط gzip والتخزين المؤقت لـ Varnish التأثير الأكبر. تمت بالفعل كتابة العديد من طرق التحسين الإضافية في التعليقات، والتي سأقوم بالتأكيد بدراستها وتنفيذها حسب الضرورة. حتى الآن، نتائج التحسين هي كما يلي:
قبل


بعد


سأجري اختبارات الإجهاد الكاملة في وقت لاحق قليلا.

لقد سمع كل شخص مرة واحدة على الأقل عن بعض أنواع كسب المال عبر الإنترنت. ولكن في حين يتم ذكر كتابة النصوص وإعادة الكتابة في كثير من الأحيان، إلا أنهم ينسون الحديث عن النشر. ما هو النشر؟ كم يمكن أن تكسب منه؟ ما هو النشر الاجتماعي؟ الشبكات وكيف يختلف عن النشر على مدونة أو منتدى؟ ستجد إجابات لهذه الأسئلة وغيرها في المقالة.

ما هو النشر؟

النشر هو عملية كتابة رسائل أو منشورات صغيرة على مواقع مصممة خصيصًا لهذا الغرض. في الواقع، النشر هو نوع محدد من كتابة النصوص. يمكن أن تكون هذه الموارد مدونات وشبكات اجتماعية وكتب ضيوف ومنتديات وما إلى ذلك. تسمى الرسالة التي يسلمها الملصق بالمنشور. ويتراوح طوله عادة من 100 إلى 300 حرف. يتم نشر الروابط الموجودة على الموقع إما مباشرة في الرسالة، إذا سمحت بذلك قواعد المورد الذي تم النشر عليه، أو في حقل مخصص لذلك.

هناك المزيد من أنواع النشر التي لها مهام مختلفة.

لماذا النشر ضروري؟

هناك ثلاثة أسباب رئيسية لطلب النشر: الإعلان عن منتج أو مورد، لجذب الزوار إلى الموقع، الترويج مقابل القليل من المال عن طريق تلقي روابط موضوعية من مواقع أخرى.

ما هو النشر؟ من أشهر طرق الإعلان وجذب الزوار للموقع. إنه مطلوب بشدة بين المهنيين الذين ترتبط أنشطتهم بالإنترنت. تُستخدم خدمات النشر في مجموعة متنوعة من المواقف، ولكن يمكن تحديد أكثرها شيوعًا وأهمية من بينها.

النشر لجذب الزوار

ما هو النشر؟ إحدى طرق جذب الزوار للتواصل في منتدى مفتوح حديثًا، لإثارة اهتمامهم ودفعهم إلى المحادثة. حتى مع الإعلانات الأكثر نجاحًا، من غير الممكن حث زوار المورد على التواصل إذا لم يكن لديه محتوى أولي على الأقل. كيف يمكن للزائر الانضمام إلى المناقشة إذا لم تكن موجودة بعد؟

ولهذا الغرض يقوم مالك المنتدى بتعيين فريق من المحترفين الذين سيكونون قادرين على النشر - ملء المورد برسائل أولى عالية الجودة.

المنتديات التي يتوقف فيها الاتصال لسبب ما تفعل الشيء نفسه: فهي تنتج محتوى جديدًا من أجل دفع الزوار إلى التواصل وإحياء النقاش.

يمكنك أيضًا جذب الزوار إلى مشاريع أخرى مماثلة باستخدام طريقة النشر، لأن أيًا منها سيحتاج إلى محتوى أولي أو محدث بانتظام.

الشبكات الاجتماعية تحظى بشعبية كبيرة في العالم الحديث. ما هو نشر تغريدة جديدة مع رابط؟ ماذا عن إنشاء منشور فكونتاكتي؟ هذا هو نفس نشر النص مع رابط، فقط على موقع ويب على أي شبكة اجتماعية: في مجموعة أو على صفحة ذات حركة مرور عالية. يتضمن ذلك أيضًا إنشاء ملاحظات في المدونات والكتالوجات.

النشر: دعونا نروج لأنفسنا بسعر رخيص

دعونا ننظر في عامل الروابط الطبيعية. نظرًا لأن المدونات والمنتديات والموارد المماثلة مفتوحة، علاوة على ذلك، تم إنشاؤها خصيصًا لنشر رسائل من الزوار، فلا يمكن لأي مرشح أو قاعدة محرك بحث أن تمنع الرابط المنشور. حتى متخصص البحث الذي يقوم بإجراء فحص يدوي ليس له الحق في القيام بذلك. بالطبع، هذا لا يعني أنك بحاجة إلى إهمال قواعد الموارد التي تنشر عليها.

يلعب موضوع الروابط دورًا أيضًا. إذا قمت بوضعها بلا تفكير حيثما كان ذلك ممكنًا وبأقصى كمية، فلن يؤدي ذلك إلى أي شيء جيد. تتلاشى هذه الروابط بشكل أسرع مما تتخيل، حتى لو كان لهذه الطريقة بعض التأثير على موقعك. مشكلة أخرى هي أن المورد قد يواجه عقوبات أو حتى يتم حظره من جميع محركات البحث. تدور المحادثة حول الحاجة إلى استخدام برامج متخصصة لوضع الروابط في مختلف المدونات وكتب الضيوف والمنتديات.

لذا، إذا كنت مالك متجر ألعاب الأطفال عبر الإنترنت، فعليك إعداد روابط حصرية من مواقع منتجات الأطفال. بالإضافة إلى ذلك، يجب أن تكون جميع المشاركات ذات جودة عالية وأن تتوافق مع قواعد الموارد التي تم نشرها عليها.

نشر رخيصة

يعد النشر طريقة رخيصة إلى حد ما للترويج لمورد ما. لا يطلب مسؤولو الموقع الدفع مقابل الدفع، يتم الدفع فقط لأولئك الذين يقومون بإنشاء المشاركات.

كسب المال عن طريق النشر

إن كسب المال من خلال النشر ليس بالأمر السهل فحسب، بل إنه مثير للاهتمام أيضًا. إذا خصصت حوالي ساعتين يوميًا لهذه المهمة، فسيكون لديك الوقت لإنشاء حوالي 30 مشاركة ذات نوعية جيدة. وبطبيعة الحال، مع المزيد من وقت الفراغ، يمكنك إنجاز الكثير.

يبلغ متوسط ​​الأجر مقابل هذا العمل حوالي 10-15 سنتًا لكل مشاركة. هناك تبادلات خاصة للتواصل مع أصحاب العمل. من خلال التسجيل في بعضها، يمكنك ضمان دخل ثابت ومنتظم لنفسك عن طريق النشر.

ما فائدة النشر؟ بساطة المهام، وسرعة إنجازها. بالطبع، النشر كنوع من كتابة الإعلانات ليس هو الأكثر أجرًا. ولكنها يمكن أن تكون نقطة انطلاق ممتازة للمؤلف الذي بدأ للتو في جني الأموال عبر الإنترنت. هناك أيضًا ملصقات متعطشة متخصصة فقط في هذا النوع من كتابة الإعلانات.

تذكر ما فعله أسلافك في الكهف طوال معظم حياته. هذا صحيح، لقد اصطدت الماموث مع قبيلتي. أو، كجزء من عمله الخاص، تعقب بعض النيص الذي يعود إلى فترة ما قبل الطوفان من أجل توفير الطعام للعائلة المنتظرة في كهفه الأصلي. وهذا يعني أن سلفك كان يتحرك بشكل مستمر تقريبًا. إذا لم تتحرك بسرعة كافية، فقد ينتهي بك الأمر بدون عشاء. أو حتى ينتهي بهم الأمر إلى أن يتم أكلهم من قبل بعض الحيوانات المفترسة ذات الأسنان السيفية لتناول العشاء.

يصطاد الإنسان المعاصر في الغالب ماموث الكمبيوتر، الأمر الذي لا يتطلب الكثير من النشاط البدني. يصل إلى العمل بالسيارة، ولا يخرج من العمل سيرًا على الأقدام أيضًا. والشهية، مثل جميع آليات دعم الحياة الأخرى، لا تختلف عن آليات الكهف. لذلك، من خلال تناول النيص الجاهز والمعبأ بشكل جميل في المطبخ، يحصل الإنسان المعاصر على سعرات حرارية مجانية لا توفرها تكاليف الطاقة. ثم يسأل: لماذا تنمو بطون الرجال؟

ماذا يحدث لنا نحن البشر، نحن صيادو الماموث ومستهلكو النيص الذي نشتريه من المتاجر؟ الطبيعة ليس لديها شيء لا لزوم له. إذا لم تكن العضلات في الطلب، فإنها تفقد لهجتها. ونتيجة لذلك، تبدأ محتويات بطننا، تحت تأثير الضغط الداخلي، في بروز جدار البطن الأمامي. و- وداعًا لعضلات البطن الستة الثمينة والجينز الشبابي في العام الماضي. الآن عليك أن تختار السراويل ليس حسب الحجم والأسلوب، ولكن من خلال القدرة على ربطها على البطن. بتعبير أدق، تحت البطن، لأنه لن يبقى عليه أي بنطلون.

سبب بروز البطن إلى الأمام هو ضعف عضلة جدار البطن المستقيمة. إن النغمة غير الكافية لعضلات البطن المائلة هي المسؤولة عن انتشار الخصر الشاب إلى الجانبين. هذا يلغي النمو الفعلي للطبقة الدهنية، والذي لا يحدث فقط على جدار البطن الأمامي، ولكن أيضًا على الحلقات المعوية، في ما يسمى بالثرب. وبالمناسبة، فإن هذه الدهون الداخلية تظهر ثباتاً خاصاً عند محاولة التخلص منها. سوف يقاتل جسدك من أجل الثرب الخاص به، مثل البطل الأولمبي لتحقيق النصر. لأنني على يقين أن الدهون المترسبة ضرورية لضمان وظائفها الحيوية. وهو يجمع هذه الدهون ليس لإزعاجك بل ليوم ممطر. دعونا نتذكر كم مرة قام أسلاف الكهف بعمليات صيد ناجحة؟ هل حدث من قبل أن الطبقة الدهنية توفر تبادل الطاقة للصياد الخافت، مما يمنحه القوة لمواصلة عمليات البحث عن الطعام؟ لا يوجد شيء غير ضروري في الطبيعة. الأمر كله يتعلق بكيفية إدارة الفرص التي توفرها لنا الطبيعة.

لماذا ينمو الجزء السفلي من البطن؟

ولكن لماذا ينمو الجزء السفلي من البطن؟ لنفس القصور في العضلات المائلة لجدار البطن. ولكن ليس فقط. هنا ننتقل بسلاسة إلى الشؤون الداخلية، أي اضطرابات التمثيل الغذائي.

رواسب الدهون في أسفل البطن، مستودع الدهون. من أين أتى؟ ومن هناك، تم تصنيعه من السعرات الحرارية الزائدة غير المستغلة. هل تريد التخلص منه؟ الغدد الصماء للمساعدة. والحقيقة هي أن أهم هرمون ذكري، وهو هرمون التستوستيرون، من بين وظائفه الأخرى، هو المسؤول أيضًا عن استقلاب الدهون في جسم الرجل. يعد انخفاض إنتاج هرمون التستوستيرون المرتبط بالعمر ظاهرة فسيولوجية، أي أنه يحدث بشكل طبيعي. ولكن - بسلاسة. لدينا النيص الذي تم شراؤه من المتجر والحد الأدنى من الحركات. ومن طبقة الدهون غير المرئية المتأصلة في كل كائن حي، ننمو بطن "بيرة" كامل. اسأل – ما علاقة الغدد الصماء به؟ مع كل شيء، رغم ذلك. تساهم الزيادة في عدد الخلايا الدهنية في زيادة إنتاج هرمون التستوستيرون - اللبتين. ونتيجة لذلك، فإن عملية تقليل إنتاج هرمون التستوستيرون تحدث بشكل أسرع مما ينبغي. وبناء على ذلك، يزداد إنتاج اللبتين. وزيادة في حجم مستودعات الدهون. مجرد نوع من تسلسل فيبوناتشي.

يؤثر "تسلسل فيبوناتشي" الأكثر ذكورية على صحة جميع الرجال، سواء الإنجابية أو العامة. وهذا يؤدي إلى خمول لا يمكن تفسيره، وزيادة التعب، والميل إلى المرض وانخفاض المقاومة للإجهاد.

إذا كانت الحالة الصحية لا تزال مرضية، فمن حيث عملية التمثيل الغذائي لم تعد جيدة. وتستمر العملية في اكتساب الزخم.

ولكن دعونا نعود إلى البيرة. لماذا البيرة تجعل بطنك ينمو؟ كل شيء بسيط هنا - معدة ممدودة بشكل غير طبيعي (نادرا ما يشرب أي شخص زجاجة واحدة من البيرة)، والاستخراج، مما يزيد من الشهية، ووجود نظائر الهرمونات الجنسية الأنثوية التي تحفز تكوين الدهون. في الآونة الأخيرة، جرت محاولات لإعادة تأهيل البيرة. أعتقد أنه بناءً على اقتراح شركات البيرة غير المهتمة بمكافحة الإعلانات. لكن أنا وأنت مهتمان بصحتنا، وليس بأرباح الآخرين. أليس من الأفضل أن تفكر في نفسك بجدية قبل فوات الأوان؟

أم أن الأمر أفضل بهذه الطريقة؟)))

خطأ:المحتوى محمي!!