ชายน้อยโพส php f. พุงในผู้ชายโพสต์คำพูดในโหมด php ทำไมท้องถึงโต? การตั้งค่า WordPress - ปลั๊กอินวานิช HTTP Purge

จำสิ่งที่บรรพบุรุษถ้ำของคุณทำมาตลอดชีวิต ใช่แล้ว ฉันล่าแมมมอธกับเผ่าของฉัน หรือในฐานะส่วนหนึ่งของอาชีพอิสระ เขาได้ตามหาเม่นบางตัวที่ยังไม่แพร่หลายเพื่อจัดหาอาหารให้กับครอบครัวที่รออยู่ในถ้ำบ้านเกิดของเขา นั่นคือบรรพบุรุษของคุณเคลื่อนไหวเกือบต่อเนื่อง หากคุณไม่เคลื่อนไหวเร็วพอ คุณอาจไม่ได้รับประทานอาหารเย็น หรือแม้กระทั่งถูกนักล่าฟันดาบกินเป็นมื้อเย็น

คนสมัยใหม่ส่วนใหญ่ล่าแมมมอธคอมพิวเตอร์ซึ่งไม่ต้องการการออกกำลังกายมากนัก เขาไปทำงานโดยรถยนต์และไม่เดินจากที่ทำงานด้วย และความอยากอาหาร เช่นเดียวกับกลไกการช่วยชีวิตอื่นๆ ก็ไม่ต่างจากกลไกในถ้ำ ดังนั้นโดยการรับประทานเม่นสำเร็จรูปที่บรรจุอย่างสวยงามในห้องครัว คนสมัยใหม่จึงได้รับแคลอรี่ฟรีที่ไม่ได้มาจากต้นทุนพลังงาน แล้วเขาก็ถามว่า: ทำไมผู้ชายถึงมีพุง?

จะเกิดอะไรขึ้นกับพวกเราผู้ชาย นักล่าแมมมอธที่มีพิกเซล และผู้บริโภคเม่นที่ซื้อจากร้านค้า? ธรรมชาติไม่มีอะไรฟุ่มเฟือย หากกล้ามเนื้อไม่ต้องการก็จะสูญเสียน้ำเสียง เป็นผลให้เนื้อหาของช่องท้องของเราเริ่มยื่นออกมาผนังหน้าท้องภายใต้อิทธิพลของแรงกดดันภายใน และ – ลาก่อนหน้าท้องซิกแพคอันล้ำค่าและกางเกงยีนส์อ่อนเยาว์ของปีที่แล้ว ตอนนี้คุณต้องเลือกกางเกงไม่ใช่ตามขนาดและสไตล์ แต่โดยความสามารถในการรัดไว้ที่ท้อง แม่นยำกว่านั้นคืออยู่ใต้ท้องเพราะไม่มีกางเกงตัวใดที่จะติดอยู่เลย

สาเหตุของการยื่นหน้าท้องไปข้างหน้าอย่างภาคภูมิใจคือความอ่อนแอของกล้ามเนื้อผนังหน้าท้องของทวารหนัก กล้ามเนื้อหน้าท้องเฉียงไม่เพียงพอเป็นสาเหตุของการแพร่กระจายของเอวที่อ่อนเยาว์ไปทางด้านข้าง นี่ไม่รวมการเติบโตที่แท้จริงของชั้นไขมัน ซึ่งไม่เพียงแต่เกิดขึ้นที่ผนังช่องท้องด้านหน้าเท่านั้น แต่ยังเกิดขึ้นบนลูปของลำไส้ด้วย ที่เรียกว่า omentum อย่างไรก็ตาม ไขมันภายในนี้แสดงให้เห็นความคงทนเป็นพิเศษเมื่อพยายามกำจัดมัน ร่างกายของคุณจะต่อสู้เพื่อพลังของตัวเองเหมือนกับแชมป์โอลิมปิกเพื่อชัยชนะ เพราะฉันมั่นใจว่าไขมันที่สะสมไว้นั้นมีความจำเป็นต่อการทำงานที่สำคัญของมัน และเขาจะสะสมไขมันนี้ไว้เพื่อไม่ให้รบกวนคุณ แต่สำหรับวันฝนตก โปรดจำไว้ว่าบรรพบุรุษของถ้ำประสบความสำเร็จในการล่าสัตว์บ่อยแค่ไหน? มันเคยเกิดขึ้นไหมที่ชั้นไขมันแลกเปลี่ยนพลังงานให้กับนักล่าที่หน้าซีด ทำให้เขามีพลังในการค้นหาอาหารต่อไป? ไม่มีอะไรที่ไม่จำเป็นในธรรมชาติ อยู่ที่ว่าเราจัดการโอกาสที่ธรรมชาติมอบให้เราอย่างไร

ทำไมช่องท้องส่วนล่างจึงโตขึ้น?

แต่ทำไมหน้าท้องส่วนล่างถึงโตล่ะ? สำหรับกล้ามเนื้อเฉียงของผนังหน้าท้องไม่เพียงพอเช่นเดียวกัน แต่ไม่เพียงเท่านั้น ที่นี่เราไปสู่เรื่องภายในได้อย่างราบรื่นนั่นคือความผิดปกติของการเผาผลาญ

ไขมันสะสมบริเวณหน้าท้องส่วนล่าง คลังไขมัน มันมาจากไหน? จากนั้นจึงสังเคราะห์จากแคลอรี่ส่วนเกินที่ยังไม่ได้ใช้ คุณต้องการที่จะกำจัดมัน? ต่อมไร้ท่อเพื่อช่วย ความจริงก็คือฮอร์โมนเพศชายที่สำคัญที่สุดคือฮอร์โมนเทสโทสเทอโรนและหน้าที่อื่น ๆ ของฮอร์โมนนั้นก็มีหน้าที่ในการเผาผลาญไขมันในร่างกายของมนุษย์เช่นกัน การผลิตฮอร์โมนเทสโทสเตอโรนที่ลดลงตามอายุเป็นปรากฏการณ์ทางสรีรวิทยา กล่าวคือ มันเกิดขึ้นตามธรรมชาติ แต่ - อย่างราบรื่น เรามีเม่นที่ซื้อในร้านและมีการเคลื่อนไหวขั้นต่ำ และจากชั้นไขมันที่มองไม่เห็นที่มีอยู่ในทุกสิ่งมีชีวิต เราจึงสร้างพุง "เบียร์" ที่เต็มเปี่ยม ถาม – ต่อมไร้ท่อเกี่ยวอะไรกับมัน? กับทุกสิ่งทุกอย่างก็ตาม การเพิ่มจำนวนเซลล์ไขมันทำให้การผลิตฮอร์โมนเทสโทสเทอโรน - เลปตินเพิ่มขึ้น ส่งผลให้กระบวนการลดการผลิตฮอร์โมนเทสโทสเทอโรนเกิดขึ้นเร็วกว่าที่ควรจะเป็น ดังนั้นการผลิตเลปตินจึงเพิ่มขึ้น และเพิ่มปริมาณคลังไขมัน แค่ลำดับฟีโบนัชชีอะไรสักอย่าง

“ลำดับฟีโบนัชชี” ที่เป็นเพศชายมากที่สุดนี้ส่งผลต่อสุขภาพของผู้ชายทุกคน ทั้งในด้านระบบสืบพันธุ์และทั่วไป ส่งผลให้เกิดอาการง่วงอย่างอธิบายไม่ได้ ความเหนื่อยล้าเพิ่มขึ้น แนวโน้มที่จะเจ็บป่วย และความต้านทานต่อความเครียดลดลง

หากสุขภาพยังดีอยู่ก็แสดงว่าการเผาผลาญไม่ดีอีกต่อไป และกระบวนการนี้ยังคงได้รับแรงผลักดันอย่างต่อเนื่อง

แต่ขอกลับไปดื่มเบียร์ดีกว่า ทำไมเบียร์ถึงทำให้พุงของคุณโตขึ้น? ทุกอย่างเรียบง่ายที่นี่ - ท้องยาวผิดปกติ (แทบไม่มีใครดื่มเบียร์หนึ่งขวด) สารสกัดซึ่งเพิ่มความอยากอาหารและการมีฮอร์โมนเพศหญิงที่คล้ายคลึงกันซึ่งกระตุ้นการสร้างไขมัน เมื่อเร็ว ๆ นี้มีความพยายามที่จะฟื้นฟูเบียร์ ผมเชื่อว่าตามคำแนะนำของบริษัทเบียร์ที่ไม่สนใจต่อต้านการโฆษณา แต่คุณและฉันสนใจสุขภาพของเราไม่ใช่ผลกำไรของผู้อื่น คิดจริงจังกับตัวเองก่อนจะสายเกินไปไม่ดีกว่าเหรอ?

หรือวิธีนี้ดีกว่า?)))

ในบทความนี้ ฉันจะพูดถึงวิธีที่ฉันทำให้บล็อก WordPress ของฉันทำงานผ่านการแคชอัจฉริยะ การบีบอัด และการเพิ่มประสิทธิภาพอื่น ๆ บนเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ ในขณะที่เขียน คุณลักษณะ VDS มีดังนี้:

ซีพียู: 1 x 2GHz
ฮาร์ดดิสก์: 10Gb
แรม: 512Mb
ระบบปฏิบัติการ: เดเบียน 8 x64

แผนภาพการทำงานของระบบมีดังนี้:

คำอธิบายการทำงานของวงจร

ผู้เยี่ยมชมไซต์จะถูกเปลี่ยนเส้นทางไปยัง HTTPS โดยที่ nginx ทำงานเป็นพร็อกซีสำหรับ Varnish และที่เอาต์พุต nginx นอกเหนือจากการใช้การเชื่อมต่อ HTTPS แล้ว การบีบอัด gzip ของข้อมูลที่ส่งไปยังผู้ใช้จะเกิดขึ้น องค์ประกอบถัดไปในระบบนี้คือตัวเร่งความเร็ว Varnish HTTP ซึ่งรับฟังการเชื่อมต่อบนพอร์ต 6081 เมื่อได้รับคำขอจากไคลเอ็นต์ ระบบจะค้นหา URL ที่ร้องขอในแคช และหากพบ ก็จะส่งไปยังส่วนหน้าทันที ดังนั้น หากไฟล์ที่ร้องขออยู่ในแคช ความเร็วของการร้องขอเพจจะลดลงเป็นความเร็วของการร้องขอข้อมูลคงที่ หากไม่พบไฟล์ที่ร้องขอในแคช Varnish จะส่งคำขอไปยังแบ็กเอนด์ วานิชยังใช้การปรับให้เหมาะสมฝั่งไคลเอ็นต์ - ที่นี่ส่วนหัว Cache-Control และ Expires ได้รับการตั้งค่าสำหรับข้อมูลคงที่ ซึ่งระบุให้เบราว์เซอร์ทราบว่าจำเป็นต้องแคชข้อมูลนี้ในฝั่งไคลเอ็นต์ ซึ่งจะช่วยลดเวลาในการโหลดไซต์และลดภาระบนเซิร์ฟเวอร์

แบ็กเอนด์เป็น nginx อีกครั้ง กำลังรอการเชื่อมต่อบน 127.0.0.1:81 การตีความ PHP ดำเนินการโดยใช้ FPM PHP เวอร์ชัน 5.6 โดยเปิดใช้งานตัวเร่งความเร็ว OPcache เป็นค่าเริ่มต้น ในฐานะ DBMS - MariaDB 10 ซึ่งเป็นหนึ่งใน DBMS ประสิทธิภาพและการใช้หน่วยความจำที่ดีที่สุดในบรรดาส้อม MySQL เอ็นจิ้นตารางที่ใช้คือ MyISAM เนื่องจากการเขียนไม่ค่อยเสร็จสิ้น ส่วนใหญ่เป็นการอ่าน ซึ่งเอ็นจิ้นนี้ได้รับการปรับให้เหมาะสมที่สุด ด้วยการปิดการใช้งานเอ็นจิ้น InnoDB RAM จะถูกบันทึกไว้ ในที่สุด WordPress ทำงานเป็น CMS ที่ติดตั้งปลั๊กอิน Varnish HTTP Purge โดยส่งคำขอ PURGE ไปยังที่อยู่ของหน้าที่มีการเปลี่ยนแปลง ซึ่งนำไปสู่การล้างแคช Varnish สำหรับหน้าเหล่านี้ ดังนั้นผู้ใช้จะได้รับเว็บไซต์เวอร์ชันล่าสุดเสมอ ต่อไป ฉันจะพูดถึงรายละเอียดเกี่ยวกับการติดตั้งและการกำหนดค่าส่วนประกอบเหล่านี้ รวมถึงปัญหาที่ฉันพบ

การติดตั้งและกำหนดค่า nginx

ติดตั้ง:

ฉลาดรับการติดตั้ง nginx
เนื้อหาของการกำหนดค่าหลัก /etc/nginx/nginx.conf:

# ผู้ใช้และกลุ่มในนามของกระบวนการที่จะเปิดตัวผู้ใช้ www-data www-data; # ขอแนะนำให้ตั้งค่าจำนวนคนงานในเวอร์ชันใหม่เป็น auto worker_processes auto error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; เหตุการณ์ ( # จำนวนการเชื่อมต่อสูงสุดสำหรับคนงานหนึ่งคน worker_connections 1,024; # วิธีการเลือกการเชื่อมต่อ (สำหรับ FreeBSD จะเป็น kqueue) ใช้ epoll; # ยอมรับจำนวนการเชื่อมต่อสูงสุดที่เป็นไปได้ multi_accept on; ) http ( # ระบุไฟล์ที่มีประเภท mime และ ระบุประเภทข้อมูลเริ่มต้น ได้แก่ /etc/nginx/mime.types; default_type application/octet-stream; # ปิดการใช้งานเอาต์พุตของเวอร์ชัน nginx ในการตอบสนอง server_tokens; # วิธีการ sendfile มีประสิทธิภาพมากกว่าการอ่าน + เขียน sendfile; จำนวนข้อมูลที่สามารถถ่ายโอนได้ในคราวเดียว โทร sendfile() จำเป็นต้องยกเว้นสถานการณ์เมื่อการเชื่อมต่อหนึ่งสามารถจับผู้ปฏิบัติงาน sendfile_max_chunk 128k ได้อย่างสมบูรณ์ # ส่งส่วนหัวและจุดเริ่มต้นของไฟล์ในหนึ่งแพ็กเก็ต tcp_nodelay บน; การเชื่อมต่อหากไคลเอ็นต์หยุดอ่านการตอบกลับการรีเซ็ต_หมดเวลา_การเชื่อมต่อจะหมดอายุเมื่อได้รับส่วนหัวคำขอและเนื้อหา client_header_timeout 3;
# ยุติการเชื่อมต่อหากไคลเอนต์ไม่ตอบสนองภายใน 3 วินาที send_timeout 3;

เซิร์ฟเวอร์ ( # รอการเชื่อมต่อท้องถิ่นบนพอร์ต 81 ฟัง 127.0.0.1:81; # ไดเร็กทอรีรูทและไฟล์ดัชนีรูท /var/www/site.ru/public_html; ดัชนี index.php; # เปิดใช้งานการบีบอัด gzip บนเอาต์พุตแบ็กเอนด์ ใน แคชไฟล์เวอร์ชันที่บีบอัดแล้วจะถูกส่งไป ในที่นี้การบีบอัดเกิดขึ้นที่ระดับการบีบอัด 9 โปรดทราบว่าข้อความ/ธรรมดาไม่รวมอยู่ในประเภทต่างๆ เราบีบอัดไว้ที่ส่วนหน้าที่ระดับการบีบอัด 1 เพื่อหลีกเลี่ยงการโหลด CPU สูงเมื่อส่งคืนข้อมูลไดนามิก gzip_comp_level 9; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/css application/x-javascript text/xml application/xml+rss text/javascript application/javascript image/svg+xml; # ปฏิเสธการเข้าถึงตำแหน่งไฟล์ที่ซ่อนอยู่ ~ /\. ( ปฏิเสธทั้งหมด; ) # ปฏิเสธการเข้าถึงตำแหน่งสคริปต์ที่โหลด ~* /(?:uploads|files)/.*\.php$ ( ปฏิเสธทั้งหมด; ) # ค้นหาสิ่งที่ร้องขอ URI ในตำแหน่งสามพาธ / ( try_files $uri $uri/ /index.php?$args;
) # เพิ่มเครื่องหมายทับต่อท้ายสำหรับคำขอ */wp-admin เขียนใหม่ /wp-admin$ $scheme://$host$uri/ ถาวร;
ตำแหน่ง ~ \.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 ฟัง 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; # สร้างการเชื่อมต่อ Keep-Alive กับผู้เยี่ยมชม keepalive_timeout 60 60; # บีบอัดข้อมูลก่อนส่งไปยังไคลเอนต์ โปรดทราบว่ามีเพียงข้อความ/ธรรมดาเท่านั้นที่แสดงอยู่ที่นี่ สำหรับการบีบอัดข้อมูลอื่น ๆ จะถูกนำไปใช้กับแบ็กเอนด์ที่ระดับการบีบอัดที่สูงกว่า หลังจากนั้นข้อมูลจะถูกส่งไปยังแคช เพื่อหลีกเลี่ยงภาระของ CPU เมื่อบีบอัดเอกสารแบบไดนามิก ssl_session_cache ที่ใช้ร่วมกัน: 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";

ตำแหน่ง / ( # การพร็อกซีเพื่อวานิช 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-ส่งต่อ-พอร์ต 443 ) )
มาอ่านการกำหนดค่า nginx อีกครั้ง:

บริการ nginx โหลดซ้ำ
ตอนนี้เมื่อเราพยายามเข้าถึงไซต์ เราจะเห็นข้อผิดพลาด 502 ซึ่งเป็นเรื่องปกติ เนื่องจากวานิชยังไม่ได้ทำงาน
-T - แผงผู้ดูแลระบบทำงานที่นี่ รายละเอียดเพิ่มเติมในคำอธิบายของแฟล็ก -S
-f - ไฟล์ที่มีการกำหนดค่า VCL - ภาษาพิเศษที่ออกแบบมาเพื่อกำหนดกฎสำหรับการประมวลผลคำขอและการแคชในวานิช
-S - วานิชมีแผงการบริหาร หากต้องการล็อกอิน คุณต้องรันคำสั่ง varnishadm และผู้ใช้ต้องมีสิทธิ์อ่านไฟล์ /etc/varnish/secret เพื่อพิสูจน์ตัวตน
-s ระบุตำแหน่งที่เก็บแคชและขนาดของแคช ในกรณีนี้คือ 128MB ใน RAM

ดังที่คุณคงเข้าใจแล้ว สิ่งที่น่าสนใจที่สุดรอเราอยู่ในไฟล์พร้อมกฎสำหรับการดำเนินการตามคำขอ เมื่อกระบวนการวานิชเริ่มต้นขึ้น ไฟล์นี้จะถูกคอมไพล์ VCL ใช้ส่วนย่อยหลายฟังก์ชันที่อธิบายกฎเหล่านี้ ฉันจะบอกคุณสั้น ๆ เกี่ยวกับพวกเขา ฉันแนะนำให้อ่านคำอธิบายแบบเต็มบนเว็บไซต์อย่างเป็นทางการ

ย่อย vcl_recv- ฟังก์ชั่นนี้ใช้เมื่อมีการร้องขอจากไคลเอนต์
ย่อย vcl_pass- ดำเนินการเมื่อคำขอของลูกค้าต้องถูกส่งโดยตรงไปยังแบ็กเอนด์ โดยไม่ต้องแคชหรือค้นหารายการที่ตรงกันในแคช
ย่อย vcl_hash- กำหนดกฎการแคช คุณสามารถใช้พื้นที่เก็บข้อมูลหลายรายการสำหรับเอกสารเดียวกัน ขึ้นอยู่กับเงื่อนไขที่แตกต่างกัน เช่น ไม่ว่าไคลเอนต์จะรองรับการบีบอัดหรือไม่ หรือคุณสมบัติอื่น ๆ ของไคลเอนต์ ในกรณีของเราจะไม่ถูกใช้เนื่องจากเรามีไคลเอ็นต์เดียวสำหรับ Varnish - nginx ที่ส่วนหน้า
ย่อย vcl_backend_response- ฟังก์ชั่นนี้ใช้เมื่อมีการร้องขอมาจากแบ็กเอนด์ (nginx)
ย่อย 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" ; ) # รับคำขอจากไคลเอนต์ย่อย vcl_recv ( # อนุญาตให้ช่วงข้างต้นล้างแคชถ้า (req.method == "PURGE") ( # หากคำขอไม่อยู่ในรายการ ให้ขยายถ้า (! client.ip ~ purge) ( return(synth (405, "IP นี้ไม่ได้รับอนุญาตให้ส่งคำขอ PURGE")); return (purge); # ข้ามคำขอ POST และเพจที่มีการอนุญาตพื้นฐาน if (req.http.Authorization | |. req.method = = "POST") ( return (pass); ) # ข้ามผู้ดูแลระบบและหน้าเข้าสู่ระบบหาก (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true") ( return (pass) ; ) # ข้ามแผนผังเว็บไซต์และไฟล์โรบ็อต แผนผังเว็บไซต์ของฉันถูกสร้างขึ้นโดยปลั๊กอิน Google XML Sitemaps ถ้า (req.url ~ "sitemap" || req.url ~ "robots") ( return (pass) ; ) # ลบคุกกี้ที่มี "has_js" " และ "__*" ที่เพิ่มโดย CloudFlare และ Google Analytics เนื่องจากวานิชจะไม่แคชคำขอที่มีการตั้งค่าคุกกี้ การอนุญาต || req.http.Cookie) ( # ไม่สามารถแคชได้โดยค่าเริ่มต้น return (ผ่าน); ) # แคชทุกอย่างที่ส่งคืน (แฮช); ) 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; # อย่าแคชโรบ็อตและแผนผังไซต์ถ้า (bereq.url ~ "sitemap" || bereq.url ~ "robots") ( set beresp.uncacheable = true; set beresp.ttl = 30s; return ( ส่ง); ) # สำหรับไฟล์คงที่ที่ให้บริการโดยแบ็กเอนด์... if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg| htm |html") ( # ลบคุกกี้ทั้งหมดที่ไม่ได้ตั้งค่า beresp.http.cookie; # กำหนดระยะเวลาการจัดเก็บข้อมูลในแคช - หนึ่งสัปดาห์ ตั้งค่า beresp.ttl = 7d; # ตั้งค่าส่วนหัว Cache-Control และ Expires โดยบอกเบราว์เซอร์ว่าสิ่งเหล่านี้ ไฟล์ควรค่าแก่การบันทึกในแคชของไคลเอนต์และอย่าโอเวอร์โหลดเซิร์ฟเวอร์ของเรา unset beresp.http.Cache-Control; set beresp.http.Cache-Control = "public, max-age=604800"; set beresp.http.Expires = now + beresp.ttl ; ) # อย่าแคชผู้ดูแลระบบและหน้าเข้าสู่ระบบหาก (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 (ส่ง); ) # อย่าแคชผลการค้นหาถ้า (bereq.url ~ "\?s=" )( set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); ) # อย่าแคชหน้าข้อผิดพลาด เฉพาะสิ่งที่จำเป็นในแคชเท่านั้น!
จากนั้นเราก็รันคำสั่ง:

บริการเคลือบเงาเริ่มต้นใหม่
ไปที่เว็บไซต์ของเราในเบราว์เซอร์เราจะเห็น index.php ซึ่งจะต้องสร้างขึ้นก่อน

ปัญหาวานิชและ Debian 8
จะเป็นอย่างไรถ้าคุณต้องการเปลี่ยนพอร์ตที่วานิชจะยอมรับการเชื่อมต่อขาเข้าหรือเปลี่ยนขนาดแคช เมื่อพิจารณาจากเอกสารอย่างเป็นทางการคุณจะต้องเปลี่ยนไฟล์ด้วยพารามิเตอร์การเปิดตัว Varnish ซึ่งอยู่ที่เส้นทาง: /etc/default/varnish และรีสตาร์ทบริการ แต่ไม่! จะไม่มีอะไรเปลี่ยนแปลง และหากเราไปด้านบนแล้วกดปุ่ม 'c' เราจะเห็นว่าบริการกำลังทำงานด้วยการตั้งค่าเดียวกัน ประเด็นก็คือ Debian เวอร์ชันใหม่ใช้ systemd แทน init.d เป็นระบบการเริ่มต้น ดังนั้นคุณต้องไปที่ไฟล์ /lib/systemd/system/varnish.service และระบุพารามิเตอร์การเปิดตัวเดียวกันในคำสั่ง ExecStart ที่นั่น:

คำอธิบาย=วานิชตัวเร่งความเร็ว HTTP Type=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:

ฉลาดรับการติดตั้ง php5-fpm php5-mysqlnd
ไปที่ไฟล์การกำหนดค่า /etc/php5/fpm/pool.d/www.conf และเปลี่ยนคำสั่ง:

ฟัง = 127.0.0.1:9000
ดังต่อไปนี้:

ฟัง = /var/run/php5-fpm.sock
ในไฟล์เดียวกันเราตั้งค่าการตั้งค่าผู้ปฏิบัติงาน:

- การเปลี่ยนแปลงจำนวนคนทำงานแบบไดนามิก pm = dynamic ; จำนวนคนทำงานสูงสุดที่สร้างขึ้นภายใต้ภาระงานต้องไม่ต่ำกว่า pm.max_spare_servers pm.max_children = 10 ; จำนวนผู้ปฏิบัติงานที่จะเปิดตัวที่ FPM start pm.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 = 12M Allow_url_fopen = ปิด
post_max_size ถูกตั้งค่าให้ใหญ่กว่า upload_max_filesize เล็กน้อย เนื่องจากนอกเหนือจากไฟล์แล้ว คำขอยังมีข้อมูลอื่นด้วย
ด้วยคำสั่ง Allow_url_fopen เราห้ามไม่ให้มีการเรียกใช้สคริปต์ที่อยู่ในระยะไกล (ลบความเป็นไปได้ในการใช้ประโยชน์จากช่องโหว่การรวมระยะไกล)

บริการโหลด php5-fpm ซ้ำ
ตอนนี้สร้างไฟล์ที่ส่งออก phpinfo() และเข้าถึงมันในเบราว์เซอร์ ทุกอย่างควรจะใช้งานได้ อย่าลืมว่ามันถูกแคชไว้ใน Varnish แล้ว และหากคุณเปลี่ยนการกำหนดค่า PHP มันจะไม่อัปเดตในเบราว์เซอร์ของคุณ คุณสามารถเขียนกฎเพื่อข้ามไฟล์นี้ใน Varnish หรือในระหว่างการทดสอบคุณสามารถใช้พรอกซีไม่ใช่ Varnish แต่ส่งไปที่แบ็กเอนด์โดยตรงบนพอร์ต 81

การติดตั้งและกำหนดค่า MariaDB

ฉันเลือก DBMS นี้เนื่องจากประสิทธิภาพที่ดีกว่าและความสามารถในการทนต่อการโหลดจำนวนมาก ในขณะที่ใช้ RAM น้อยกว่าเมื่อเทียบกับ MySQL รวมถึงความเข้ากันได้เต็มรูปแบบกับ WordPress การติดตั้งนั้นง่ายมาก คุณจะถูกถามรหัสผ่านสำหรับผู้ใช้รูท

Apt-get ติดตั้งเซิร์ฟเวอร์ mariadb
ฉันใช้ MyISAM เป็นเครื่องมือสำหรับตาราง เนื่องจากไม่ค่อยมีการเขียนลงในตาราง และ MyISAM ก็แสดงประสิทธิภาพที่ดีขึ้นเมื่ออ่าน ฉันปิดใช้งานการสนับสนุน InnoDB โดยสมบูรณ์เพื่อเพิ่ม RAM การตั้งค่าจะถูกเก็บไว้ในไฟล์ /etc/mysql/my.cnf ฉันจะอธิบายเฉพาะคำสั่งที่ฉันเปลี่ยนแปลง:

# แคชสำหรับการทำงานกับคีย์และดัชนี key_buffer = 64M # แคชแบบสอบถาม query_cache_size = 32M # การติดตั้ง MyISAM เป็นค่าเริ่มต้นของเอ็นจิ้นการจัดเก็บเครื่องยนต์ = MyISAM # ปิดการใช้งานเอ็นจิ้น InnoDB ข้าม innodb
หลังจากบันทึกการเปลี่ยนแปลงแล้ว ให้เริ่มบริการใหม่:

บริการ mysql รีสตาร์ท

การตั้งค่า WordPress - ปลั๊กอินวานิช HTTP Purge

ติดตั้งปลั๊กอิน “Varnish HTTP Purge” ในแผงการดูแลระบบ WP ขณะนี้เมื่ออัปเดตข้อมูล คำขอ PURGE จะถูกส่งไปยังหน้าที่เปลี่ยนแปลง โดยจะล้างแคชในวานิช และข้อมูลจะได้รับการอัปเดตสำหรับผู้เยี่ยมชมเสมอ

การเพิ่มประสิทธิภาพเพิ่มเติม

เพื่อเพิ่มประสิทธิภาพฝั่งไคลเอ็นต์ด้วยวานิช เราจะบอกให้เบราว์เซอร์เก็บข้อมูลคงที่ไว้ในแคชในเครื่องของไคลเอ็นต์ แต่หากคุณต้องการเพิ่มประสิทธิภาพมากยิ่งขึ้นไปอีก ให้ไปที่developers.google.com/speed/pagespeed/insights และป้อน URL ของเว็บไซต์ของคุณหรือแม้แต่หน้าเว็บใดหน้าหนึ่งโดยเฉพาะ คุณจะได้รับรายการคำแนะนำ และจะนำเสนอไฟล์เก็บถาวรที่มีสไตล์ css และ js เวอร์ชันบีบอัดของคุณอีกด้วย แทนที่บนเว็บไซต์ของคุณและรับความเร็วในการโหลดที่เร็วขึ้นเนื่องจากปริมาณข้อมูลที่ถ่ายโอนลดลง โหลดบนเซิร์ฟเวอร์ และพื้นที่ที่ไฟล์เหล่านี้ครอบครองในแคชก็จะลดลงเช่นกัน

จะทำอย่างไรกับเอกสารที่ร้องขอจากเซิร์ฟเวอร์บุคคลที่สาม เช่น แบบอักษรหรือไลบรารี jquery คุณสามารถถ่ายโอนให้กับตัวคุณเองได้ และเนื่องจากการสร้างการเชื่อมต่อกับเซิร์ฟเวอร์เดียว ความเร็วในการโหลดหน้าเว็บจะเพิ่มขึ้น แต่ในขณะเดียวกัน รายการคำขอและการโหลดโดยรวมก็จะเพิ่มขึ้น ตัวเลือกใดที่จะเลือก - ตัดสินใจด้วยตัวเองขึ้นอยู่กับโหลดบนเซิร์ฟเวอร์และความเกียจคร้านของคุณ

บรรทัดล่าง

โดยส่วนใหญ่แล้ว การบีบอัด gzip และ Varnish caching มีผลมากที่สุด วิธีการเพิ่มประสิทธิภาพเพิ่มเติมหลายวิธีได้ถูกเขียนไว้ในความคิดเห็นแล้ว ซึ่งฉันจะศึกษาและนำไปใช้ตามความจำเป็นอย่างแน่นอน จนถึงตอนนี้ ผลลัพธ์ของการเพิ่มประสิทธิภาพมีดังนี้:
ถึง


หลังจาก


ฉันจะทำการทดสอบความเครียดแบบเต็มในภายหลัง

ทุกคนเคยได้ยินเกี่ยวกับการหาเงินบางประเภทบนอินเทอร์เน็ตอย่างน้อยหนึ่งครั้ง แต่ในขณะที่มีการกล่าวถึงการเขียนคำโฆษณาและการเขียนใหม่ค่อนข้างบ่อย พวกเขาลืมพูดคุยเกี่ยวกับการโพสต์ โพสต์คืออะไร? คุณสามารถสร้างรายได้จากมันได้เท่าไหร่? การโพสต์ทางสังคมคืออะไร? เครือข่าย และแตกต่างจากการโพสต์บนบล็อกหรือฟอรั่มอย่างไร? คุณจะพบคำตอบสำหรับคำถามเหล่านี้และคำถามอื่น ๆ ในบทความ

โพสต์คืออะไร?

การโพสต์คือกระบวนการเขียนข้อความขนาดเล็กหรือโพสต์บนเว็บไซต์ที่ออกแบบมาเพื่อจุดประสงค์นี้โดยเฉพาะ ที่จริงแล้ว การโพสต์เป็นการเขียนคำโฆษณาประเภทหนึ่งโดยเฉพาะ แหล่งข้อมูลดังกล่าวอาจเป็นบล็อก โซเชียลเน็ตเวิร์ก สมุดเยี่ยมชม ฟอรัม ฯลฯ ข้อความที่ผู้โพสต์ส่งเรียกว่าโพสต์ ความยาวมักจะอยู่ระหว่าง 100 ถึง 300 อักขระ ลิงก์บนเว็บไซต์จะถูกเผยแพร่โดยตรงในข้อความ หากได้รับอนุญาตตามกฎของแหล่งข้อมูลที่ใช้ในการโพสต์ หรือในช่องที่กำหนดเป็นพิเศษ

มีการโพสต์หลายประเภทที่มีงานต่างกัน

เหตุใดการโพสต์จึงจำเป็น?

มีเหตุผลหลักสามประการในการสั่งซื้อการโพสต์: เพื่อโฆษณาผลิตภัณฑ์หรือทรัพยากร เพื่อดึงดูดผู้เยี่ยมชมไซต์ การโปรโมตด้วยเงินเพียงเล็กน้อยโดยรับลิงก์เฉพาะเรื่องจากไซต์อื่น

โพสต์คืออะไร? หนึ่งในวิธีการโฆษณาและดึงดูดผู้เยี่ยมชมเว็บไซต์ที่ได้รับความนิยมมากที่สุด เป็นที่ต้องการอย่างมากในหมู่มืออาชีพที่มีกิจกรรมที่เกี่ยวข้องกับอินเทอร์เน็ต บริการโพสต์ใช้ในสถานการณ์ต่างๆ มากมาย แต่ในบรรดาบริการเหล่านี้ ก็สามารถระบุบริการที่พบบ่อยและสำคัญที่สุดได้

การโพสต์เพื่อดึงดูดผู้เข้าชม

โพสต์คืออะไร? วิธีหนึ่งในการดึงดูดผู้เยี่ยมชมให้สื่อสารบนฟอรัมที่เพิ่งเปิดใหม่ เพื่อให้พวกเขาสนใจและผลักดันพวกเขาเข้าสู่การสนทนา แม้ว่าการโฆษณาจะประสบความสำเร็จสูงสุด แต่ก็แทบจะเป็นไปไม่ได้เลยที่จะดึงดูดผู้เยี่ยมชมไปยังแหล่งข้อมูลเพื่อสื่อสาร หากไม่มีเนื้อหาเริ่มต้นเป็นอย่างน้อย ผู้เยี่ยมชมสามารถเข้าร่วมการสนทนาได้อย่างไรหากยังไม่มี?

เพื่อจุดประสงค์นี้เจ้าของฟอรัมจึงจ้างทีมงานมืออาชีพที่สามารถโพสต์ - เติมทรัพยากรด้วยข้อความแรกคุณภาพสูง

ฟอรัมที่การสื่อสารหยุดลงด้วยเหตุผลบางประการก็ทำสิ่งเดียวกัน นั่นคือสร้างเนื้อหาใหม่เพื่อกระตุ้นให้ผู้เยี่ยมชมสื่อสารและรื้อฟื้นการสนทนา

คุณยังสามารถดึงดูดผู้เยี่ยมชมโครงการอื่นที่คล้ายคลึงกันโดยใช้วิธีการโพสต์ได้ เนื่องจากโครงการใดโครงการหนึ่งจะต้องมีการอัปเดตหรือเนื้อหาเริ่มต้นเป็นประจำ

เครือข่ายโซเชียลได้รับความนิยมในโลกสมัยใหม่ การโพสต์ทวีตใหม่พร้อมลิงก์คืออะไร แล้วการสร้างโพสต์ VKontakte ล่ะ? นี่เป็นการโพสต์ข้อความพร้อมลิงก์เฉพาะบนเว็บไซต์บนเครือข่ายโซเชียลใด ๆ เท่านั้น: ในกลุ่มหรือบนเพจที่มีปริมาณการเข้าชมสูง รวมถึงการสร้างบันทึกย่อในบล็อกและแค็ตตาล็อกด้วย

Posting: มาโปรโมทตัวเองแบบถูกๆกันดีกว่า

พิจารณาปัจจัยของการเชื่อมโยงตามธรรมชาติ เนื่องจากบล็อก ฟอรัม และแหล่งข้อมูลที่คล้ายกันเปิดอยู่ และยิ่งไปกว่านั้น สร้างขึ้นเป็นพิเศษเพื่อวัตถุประสงค์ในการโพสต์ข้อความจากผู้เยี่ยมชม ตัวกรองหรือกฎของเครื่องมือค้นหาไม่สามารถห้ามการเผยแพร่ลิงก์ได้ แม้แต่ผู้เชี่ยวชาญด้านการค้นหาที่ดำเนินการตรวจสอบด้วยตนเองก็ไม่มีสิทธิ์ทำเช่นนี้ แน่นอนว่านี่ไม่ได้หมายความว่าคุณต้องละเลยกฎของทรัพยากรที่คุณโพสต์

เรื่องของลิงค์ก็มีบทบาทเช่นกัน หากคุณวางไว้ทุกที่โดยไม่ได้ตั้งใจและในปริมาณสูงสุดสิ่งนี้จะไม่นำไปสู่สิ่งที่ดี ลิงก์เหล่านี้จางหายไปเร็วกว่าที่คุณคิด แม้ว่าวิธีนี้จะมีผลกระทบต่อไซต์ของคุณบ้างก็ตาม ปัญหาอีกประการหนึ่งคือทรัพยากรอาจถูกคว่ำบาตรหรือแม้กระทั่งถูกแบนจากเครื่องมือค้นหาทั้งหมด บทสนทนาเกี่ยวกับความจำเป็นในการใช้ซอฟต์แวร์พิเศษเพื่อวางลิงก์ในบล็อก สมุดเยี่ยมชม และฟอรัมต่างๆ

ดังนั้นหากคุณเป็นเจ้าของร้านค้าของเล่นเด็กออนไลน์คุณควรเตรียมลิงก์จากเว็บไซต์ผลิตภัณฑ์สำหรับเด็กโดยเฉพาะ นอกจากนี้ โพสต์ทั้งหมดต้องมีคุณภาพสูงและสอดคล้องกับกฎของทรัพยากรที่โพสต์

โพสราคาถูก.

การโพสต์เป็นวิธีการโปรโมตทรัพยากรที่ค่อนข้างถูก ผู้ดูแลเว็บไซต์ไม่ต้องการการชำระเงินสำหรับการชำระเงิน ชำระเงินให้กับผู้ที่สร้างโพสต์เท่านั้น

หารายได้จากการโพสต์

การทำเงินจากการโพสต์ไม่เพียงแต่ง่าย แต่ยังน่าสนใจอีกด้วย หากคุณอุทิศเวลาให้กับงานประมาณ 2 ชั่วโมงต่อวัน คุณจะมีเวลาสร้างโพสต์คุณภาพดีประมาณ 30 โพสต์ แน่นอนว่าเมื่อมีเวลาว่างมากขึ้น คุณก็จะสามารถทำงานได้มากขึ้น

ค่าจ้างเฉลี่ยสำหรับงานดังกล่าวอยู่ที่ประมาณ 10-15 เซ็นต์ต่อโพสต์ มีการแลกเปลี่ยนพิเศษเพื่อเชื่อมต่อกับนายจ้าง ด้วยการลงทะเบียนบางส่วน คุณสามารถมั่นใจได้ว่าตัวเองมีรายได้ที่มั่นคงและสม่ำเสมอโดยการโพสต์

ข้อดีของการโพสต์คืออะไร? ความเรียบง่ายของงานเสร็จสิ้นอย่างรวดเร็ว แน่นอนว่าการโพสต์เป็นการเขียนคำโฆษณาประเภทหนึ่งไม่ใช่สิ่งที่ได้รับค่าตอบแทนสูงที่สุด แต่อาจเป็นจุดเริ่มต้นที่ดีเยี่ยมสำหรับนักเขียนที่เพิ่งเริ่มสร้างรายได้บนอินเทอร์เน็ต นอกจากนี้ยังมีผู้โพสต์ตัวยงที่เชี่ยวชาญเฉพาะด้านการเขียนคำโฆษณาประเภทนี้เท่านั้น