Lelaki kecil menghantar php f. Perut dalam lelaki menghantar petikan mod php. Mengapa perut membesar? Persediaan WordPress - Pemalam Pembersihan HTTP Varnish

Ingat apa yang nenek moyang gua buat sepanjang hayatnya. Betul, saya memburu raksasa dengan puak saya. Atau, sebagai sebahagian daripada bekerja sendiri, dia menjejaki beberapa landak antediluvian untuk menyediakan makanan untuk keluarga yang menunggu di gua asalnya. Iaitu, moyang anda bergerak hampir berterusan. Jika anda tidak bergerak cukup pantas, anda mungkin berakhir tanpa makan malam. Atau malah akhirnya dimakan oleh pemangsa bergigi tajam untuk makan malam.

Seorang lelaki moden kebanyakannya memburu mamut komputer, yang tidak memerlukan banyak aktiviti fizikal. Dia pergi bekerja dengan kereta, dan tidak juga berjalan kaki dari tempat kerja. Dan selera makan, seperti semua mekanisme sokongan hidup yang lain, tidak berbeza dengan yang gua. Oleh itu, dengan memakan landak siap sedia, dibungkus dengan cantik di dapur, seorang lelaki moden menerima kalori percuma yang tidak disediakan oleh kos tenaga. Dan kemudian dia bertanya: mengapa perut lelaki membesar?

Apa yang berlaku kepada kita lelaki, pemburu mamot berpiksel dan pengguna landak yang dibeli di kedai? Alam tidak mempunyai apa-apa yang berlebihan. Jika otot tidak diperlukan, mereka kehilangan nada mereka. Akibatnya, kandungan perut kita, di bawah pengaruh tekanan dalaman, mula menonjol dinding perut anterior. Dan - selamat tinggal kepada perut six-pack yang berharga dan seluar jeans muda tahun lepas. Kini anda perlu memilih seluar bukan mengikut saiz dan gaya, tetapi dengan keupayaan untuk mengikatnya pada perut. Lebih tepat lagi, di bawah perut, kerana tiada seluar akan kekal di atasnya.

Sebab untuk menonjolkan perut ke hadapan adalah kelemahan otot dinding perut rektus. Nada yang tidak mencukupi pada otot perut yang serong adalah untuk dipersalahkan untuk penyebaran pinggang yang dahulunya muda ke sisi. Ini tidak termasuk pertumbuhan sebenar lapisan lemak, yang berlaku bukan sahaja pada dinding perut anterior, tetapi juga pada gelung usus, dalam apa yang dipanggil omentum. Dengan cara ini, lemak dalaman ini menunjukkan kegigihan tertentu apabila cuba menyingkirkannya. Badan anda akan berjuang untuk omentumnya sendiri, seperti juara Olimpik untuk kemenangan. Kerana saya yakin bahawa lemak yang disimpan diperlukan untuk memastikan fungsi pentingnya. Dan dia mengumpul lemak ini bukan untuk mengganggu anda, tetapi untuk hari hujan. Mari kita ingat berapa kerap moyang gua berjaya memburu? Pernahkah berlaku bahawa lapisan lemak menyediakan pertukaran tenaga untuk pemburu yang lemah, memberikannya kekuatan untuk mencari makanan selanjutnya? Tidak ada yang tidak perlu dalam alam semula jadi. Ini semua tentang bagaimana kita menguruskan peluang yang diberikan kepada kita secara semula jadi.

Mengapa bahagian bawah abdomen membesar?

Tetapi mengapa bahagian bawah perut membesar? Untuk kekurangan yang sama dari otot serong dinding perut. Tetapi bukan sahaja. Di sini kita lancar beralih kepada perkara dalaman, iaitu, kepada gangguan metabolik.

Mendapan lemak di bahagian bawah abdomen, depot lemak. Dari mana ia datang? Dari situ, ia disintesis daripada kalori berlebihan yang belum diterokai. Adakah anda mahu menghilangkannya? Endokrinologi untuk membantu. Hakikatnya ialah hormon lelaki yang paling penting, testosteron, antara fungsi lain, juga bertanggungjawab untuk metabolisme lipid dalam tubuh lelaki. Penurunan yang berkaitan dengan usia dalam pengeluaran testosteron adalah fenomena fisiologi, iaitu, ia berlaku secara semula jadi. Tetapi - lancar. Kami mempunyai landak yang dibeli di kedai dan pergerakan minimum. Dan dari lapisan lemak yang tidak kelihatan yang wujud dalam setiap organisma, kami membesarkan perut "bir" yang lengkap. Tanya - apakah kaitan endokrinologi dengannya? Dengan segala-galanya, walaupun begitu. Peningkatan bilangan sel lemak menyumbang kepada peningkatan dalam pengeluaran antagonis hormon testosteron - leptin. Akibatnya, proses mengurangkan pengeluaran testosteron berlaku lebih cepat daripada yang sepatutnya. Dan dengan itu, pengeluaran leptin meningkat. Dan peningkatan dalam jumlah depot lemak. Hanya sejenis jujukan Fibonacci.

"Jujukan Fibonacci" yang paling maskulin ini memberi kesan kepada semua kesihatan lelaki, kedua-dua reproduktif dan umum. Ini mengakibatkan kelesuan yang tidak dapat dijelaskan, peningkatan keletihan, kecenderungan untuk sakit dan mengurangkan daya tahan terhadap tekanan.

Jika keadaan kesihatan masih memuaskan, maka dari segi metabolisme ia tidak lagi begitu baik. Dan proses itu terus mendapat momentum.

Tetapi mari kita kembali kepada bir. Mengapa bir membuat perut anda membesar? Segala-galanya mudah di sini - perut memanjang yang tidak normal (jarang sesiapa minum satu botol bir), ekstraktiviti, yang meningkatkan selera makan, dan kehadiran analog hormon seks wanita yang merangsang pembentukan lemak. Baru-baru ini, percubaan telah dibuat untuk memulihkan bir. Saya percaya bahawa atas cadangan syarikat bir yang tidak berminat dalam anti-pengiklanan. Tetapi anda dan saya berminat dengan kesihatan kita, dan bukan pada keuntungan orang lain. Bukankah lebih baik untuk memikirkan diri sendiri secara serius sebelum terlambat?

Atau adakah lebih baik dengan cara ini?)))

Dalam artikel ini, saya akan bercakap tentang cara saya membuat blog WordPress saya terbang melalui caching pintar, pemampatan dan pengoptimuman lain pada bahagian pelayan dan klien. Pada masa penulisan, ciri-ciri VDS adalah seperti berikut:

CPU: 1 x 2GHz
HDD: 10Gb
RAM: 512Mb
OS: Debian 8 x64

Rajah operasi sistem adalah seperti berikut:

Penerangan mengenai operasi litar

Untuk pelawat tapak, pengalihan ke HTTPS berlaku, di mana nginx berfungsi sebagai proksi untuk Varnish, dan pada output nginx, selain melaksanakan sambungan HTTPS, pemampatan gzip data yang dihantar kepada pengguna berlaku. Elemen seterusnya dalam sistem ini ialah pemecut HTTP Varnish, yang mendengar sambungan pada port 6081. Apabila menerima permintaan daripada pelanggan, ia mencari URL yang diminta dalam cache, dan jika ia ditemui, ia serta-merta menghantarnya ke bahagian hadapan. Oleh itu, jika fail yang diminta berada dalam cache, kelajuan permintaan halaman dikurangkan kepada kelajuan permintaan data statik. Jika fail yang diminta tidak ditemui dalam cache, Varnish menghantar permintaan ke bahagian belakang. Varnish juga melaksanakan pengoptimuman sisi klien - di sini pengepala Cache-Control dan Expires ditetapkan untuk data statik, menunjukkan kepada penyemak imbas keperluan untuk cache data ini pada sisi klien. Ini mengurangkan masa memuatkan tapak dan mengurangkan beban pada pelayan.

Bahagian belakang sekali lagi nginx, menunggu sambungan pada 127.0.0.1:81. Tafsiran PHP dilaksanakan menggunakan FPM. Versi PHP ialah 5.6 dengan pemecut OPcache didayakan secara lalai. Sebagai DBMS - MariaDB 10, yang merupakan salah satu DBMS berprestasi terbaik dan memakan memori antara garpu MySQL. MyISAM digunakan sebagai enjin jadual, kerana menulis jarang dilakukan, kebanyakannya membaca, yang mana enjin ini lebih dioptimumkan. Dengan melumpuhkan enjin InnoDB, RAM disimpan. Akhirnya, WordPress beroperasi sebagai CMS dengan pemalam Varnish HTTP Purge dipasang, menghantar permintaan PURGE ke alamat halaman yang perubahan telah dibuat, yang membawa kepada mengosongkan cache Varnish untuk halaman ini. Oleh itu, pengguna sentiasa menerima versi tapak yang terkini. Seterusnya, saya akan bercakap secara terperinci mengenai pemasangan dan konfigurasi komponen ini, serta masalah yang saya hadapi.

Memasang dan mengkonfigurasi nginx

Pasang:

Apt-get install nginx
Kandungan konfigurasi utama /etc/nginx/nginx.conf:

# Pengguna dan kumpulan bagi pihak yang mana proses akan dilancarkan pengguna www-data www-data; # Adalah disyorkan untuk menetapkan bilangan pekerja dalam versi baharu kepada auto worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; peristiwa ( # Bilangan maksimum sambungan untuk satu pekerja_sambungan_pekerja 1024; # Kaedah pemilihan sambungan (untuk FreeBSD ia akan menjadi kqueue) gunakan epoll; # Terima bilangan maksimum sambungan berbilang_terima pada; ) http ( # Tentukan fail dengan jenis mime dan tentukan jenis data lalai termasuk /etc/nginx/mime.types; default_type application/octet-stream; # Lumpuhkan output versi nginx dalam server_tokens respons dimatikan; # Kaedah sendfile untuk menghantar data adalah lebih cekap daripada read+write sendfile on; # Hadkan jumlah data yang boleh dipindahkan pada satu masa panggil sendfile(). Ia adalah perlu untuk menghapuskan situasi apabila satu sambungan boleh mengambil alih sepenuhnya pekerja sendfile_max_chunk 128k; # Hantar pengepala dan permulaan fail dalam satu paket tcp_nopush hidup; tcp_nodelay hidup; # Tetapkan semula sambungan jika klien telah berhenti membaca respons reset_timedout_connection hidup; # Pecah sambungan mengikut tamat masa tamat apabila menerima pengepala permintaan dan badan client_header_timeout 3; client_body_timeout 5; # Tamatkan sambungan jika pelanggan tidak bertindak balas dalam masa 3 saat send_timeout 3; # Menetapkan penimbal untuk pengepala permintaan dan badan klien_header_buffer_size 2k; client_body_buffer_size 256k; # Had atas permintaan saiz badan pelanggan_maks_badan_saiz 12m; # Lumpuhkan log akses access_log off; # Sambungkan konfigurasi tambahan termasuk /etc/nginx/conf.d/*.conf; )
Mari buat fail tetapan bahagian belakang /etc/nginx/conf.d/backend.conf:

Pelayan ( # Tunggu sambungan setempat pada port 81 dengar 127.0.0.1:81; # Direktori akar dan akar fail indeks /var/www/site.ru/public_html; indeks index.php; # Dayakan pemampatan gzip pada output bahagian belakang. Untuk cache versi fail yang telah dimampatkan akan pergi. Di sini pemampatan berlaku pada tahap mampatan 9. Sila ambil perhatian bahawa teks/biasa bukan antara jenis, kami memampatkannya di bahagian hadapan pada tahap mampatan 1 untuk mengelakkan beban CPU yang tinggi apabila mengembalikan dinamik data gzip dihidupkan; 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/gzip+xml; sebarang; # Nama hos pelayan_nama tapak .ru www.site.ru; # Tolak akses kepada lokasi fail tersembunyi ~ /\. ( tolak semua; ) # Tolak akses kepada lokasi skrip yang dimuatkan ~* /(?:uploads|fail)/.* \.php$ ( tolak semua; ) # Cari URI yang diminta dalam tiga lokasi laluan / ( try_files $uri $uri/ /index.php?$args; ) # Tambah garis miring untuk permintaan */wp-admin rewrite /wp-admin$ $scheme://$host$uri/ permanent; lokasi ~ \.php$ ( # Jika terdapat ralat 404, paparkan halaman yang dijana oleh WordPress try_files $uri =404; # Apabila mengakses php, hantarkannya kepada FPM untuk tafsiran sertakan fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix :/var/run/ php5-fpm.sock; ) )
Mengenai topik penerangan terperinci mengenai penyediaan HTTPS dalam nginx, saya cadangkan membaca artikel ini: habrahabr.ru/post/252821
Buat fail tetapan bahagian hadapan /etc/nginx/conf.d/frontend.conf:

Pelayan ( # Ubah hala ke HTTPS dengar REAL_IP:80; server_name site.ru www.site.ru; return 301 https://$server_name$request_uri; ) pelayan (dengar 93.170.105.102:443 ssl; server_name site.ru www.site .ru; # Wujudkan sambungan Keep-Alive dengan pelawat keepalive_timeout 60 60; # Mampatkan data sebelum menghantarnya kepada pelanggan. Sila ambil perhatian bahawa hanya teks/plain terdapat di sini, untuk pemampatan data lain digunakan pada bahagian belakang pada tahap pemampatan yang lebih tinggi , selepas itu data ini dihantar ke cache. Dibuat untuk mengelakkan beban CPU semasa memampatkan dokumen dinamik. gzip on; gzip_comp_level 1; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/plain; gzip_proxied any; # Berikan keutamaan pada pelayan ssl_prefer_server_ciphers on ; # Menetapkan tempoh sesi TLS kepada 2 minit ssl_session_cache shared:TLS:2m; ssl_session_timeout 2m; # Menetapkan fail yang mengandungi sijil tapak dan sijil CA ssl_certificate /etc/ssl/combined.crt. # Menentukan kunci peribadi ssl_certificate_key /etc/ssl/3_site.ru.key; # Fail dengan parameter Diffie-Hellman ssl_dhparam /etc/ssl/dh2048.pem; # Protokol yang disokong ssl_protocols TLSv1.2 TLSv1.1 TLSv1; # Suite Cipher, set ini termasuk kerahsiaan hadapan ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM2:ECDH+AESGCM2:ECDH+AESGCM2 :DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!RENDAH:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS; # Melepasi pengepala Strict-Transport-Secutiry add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; lokasi / ( # Proksi ke Varnish proxy_pass http://127.0.0.1:6081/; proxy_set_header Hos $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Untuk $proxy_add_x_forwarded_for; proxy_set_header proxy_set_header X-Forwarded-Port 443; ) )
Mari baca semula konfigurasi nginx:

Perkhidmatan nginx muat semula
Sekarang, apabila kami cuba mengakses tapak, kami akan melihat ralat 502. Ini adalah perkara biasa, kerana Varnish belum berjalan lagi.

Memasang dan mengkonfigurasi Varnish

Pasang Varnis:

Apt-get pasang varnis
Fail parameter pelancaran terletak di sini - /etc/default/varnish. Dalam DAEMON_OPTS kami menetapkan parameter berikut:

DAEMON_OPTS="-a:6081 \ -T 127.0.0.1:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,128m"
-a - menetapkan port di mana Varnish akan menerima sambungan, dalam kes kami dari frontend - nginx;
-T - panel pentadbir berjalan di sini, butiran lanjut dalam perihalan bendera -S;
-f - fail dengan konfigurasi VCL - bahasa khas yang direka untuk mentakrifkan peraturan untuk memproses permintaan dan caching dalam Varnish;
-S - Varnish mempunyai panel pentadbiran. Untuk log masuk, anda mesti menjalankan perintah varnishadm, dan pengguna mesti mempunyai hak membaca ke fail /etc/varnish/secret untuk mengesahkan;
-s menunjukkan lokasi storan cache dan saiznya, dalam kes ini 128MB dalam RAM.

Seperti yang anda mungkin sudah faham, perkara yang paling menarik menanti kami dalam fail dengan peraturan untuk memproses permintaan. Apabila proses Varnish bermula, fail ini disusun. VCL menggunakan beberapa subseksyen fungsi yang menerangkan peraturan ini. Saya akan memberitahu anda secara ringkas tentang mereka; Saya mengesyorkan membaca penerangan penuh di tapak web rasmi.

sub vcl_recv- fungsi ini digunakan apabila permintaan datang daripada pelanggan;
sub vcl_pass- dilaksanakan apabila permintaan pelanggan mesti dihantar terus ke bahagian belakang, tanpa caching atau mencari padanan dalam cache;
sub vcl_hash- mentakrifkan peraturan caching; anda boleh menggunakan beberapa storan untuk dokumen yang sama, bergantung pada keadaan yang berbeza, contohnya, sama ada klien menyokong pemampatan, atau beberapa ciri klien lain. Dalam kes kami, ia tidak akan digunakan, kerana kami hanya mempunyai satu pelanggan untuk Varnish - nginx di bahagian hadapan;
sub vcl_backend_response- fungsi ini digunakan apabila permintaan datang dari bahagian belakang (nginx);
sub vcl_deliver- digunakan serta-merta sebelum menghantar data kepada klien, contohnya, untuk menambah/menukar pengepala.

Gambar rajah operasi komponen VCL boleh diwakili seperti berikut:

Jika bahagian belakang diakses daripada fungsi vcl_miss, respons bahagian belakang juga dihantar ke cache. Bahasa itu sendiri sangat serupa dengan C. Mari kita mulakan menyediakannya. Buka fail /etc/varnish/default.vcl dan mulakan pengekodan:

# Kami memaklumkan pengkompil bahawa versi baharu VCL 4 sedang digunakan vcl 4.0; # Tetapan hujung belakang lalai hujung belakang ( .host = "127.0.0.1"; .port = "81"; ) # Julat IP/Hos yang dibenarkan melakukan permintaan PURGE untuk mengosongkan cache acl purge ( "localhost"; "127.0. 0.1" ; ) # Menerima permintaan daripada sub klien vcl_recv ( # Benarkan mengosongkan cache untuk julat di atas jika (req.method == "PURGE") ( # Jika permintaan bukan daripada senarai, kemudian kembangkan jika (! client.ip ~ purge) ( return(synth (405, "IP ini tidak dibenarkan menghantar permintaan PURGE.")); ) return (purge); ) # Langkau permintaan POST dan halaman dengan kebenaran Asas jika (req.http. Keizinan || req.method = = "POST") ( return (pass); ) # Langkau halaman pentadbir dan log masuk jika (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true ") ( return (pass) ; ) # Langkau peta laman dan fail robot, peta laman saya dijana oleh pemalam Peta Laman XML Google jika (req.url ~ "peta laman" || req.url ~ "robots") ( return ( pass); ) # Padam kuki yang mengandungi "has_js" " dan "__*" ditambah oleh CloudFlare dan Google Analytics kerana Varnish tidak akan cache permintaan yang mempunyai kuki ditetapkan. set req.http.Cookie = regsubal(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", ""); # Alih keluar awalan ";" dalam kuki, jika tiba-tiba ia dikesan tetapkan req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); # Alih keluar kuki Quant Capital (ditambah oleh beberapa pemalam) set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(;)?", ""); # Padam wp-settings-1 set cookie req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(;)?", ""); # Padam set kuki wp-settings-time-1 req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+()?", ""); # Alih keluar set kuki ujian wp req.http.Cookie = regsubal(req.http.Cookie, "wordpress_test_cookie=[^;]+(;)?", ""); # Alih keluar kuki yang hanya terdiri daripada ruang (atau kosong sepenuhnya) jika (req.http.cookie ~ "^ *$") ( unset req.http.cookie; ) # Untuk dokumen statik, alih keluar semua kuki, biarkan ia dicache if (req .url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico|woff|svg|htm|html)") ( nyahset req.http.cookie; ) # Jika kuki ditetapkan " wordpress_" atau "komen_" kita langkau terus ke hujung belakang jika (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "komen_") ( kembali (lulus); ) # Jika kuki tidak dijumpai, alih keluar parameter ini daripada permintaan masuk seperti itu jika (!req.http.cookie) ( unset req.http.cookie; ) # Jangan cache permintaan dengan kuki dipasang, ini tidak lagi digunakan untuk WordPress jika (req. http. Keizinan || req.http.Cookie) ( # Tidak boleh cache secara lalai pulangan (lulus); ) # Cache semua yang lain kembali (cincang); ) sub vcl_pass ( return (fetch); ) sub vcl_hash ( hash_data(req.url); return (lookup); ) # Terima respons daripada backend sub vcl_backend_response ( # Alih keluar tajuk yang tidak perlu unset beresp.http.Server; unset beresp. http. X-Powered-By; # Jangan cache robot dan peta laman jika (bereq.url ~ "sitemap" || bereq.url ~ "robot") ( set beresp.uncacheable = true; set beresp.ttl = 30s; return ( deliver); ) # Untuk fail statik yang disampaikan oleh bahagian belakang... if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg| htm |html") ( # Padam semua kuki yang tidak ditetapkan beresp.http.cookie; # Tetapkan tempoh penyimpanan dalam cache - set seminggu beresp.ttl = 7d; # Tetapkan pengepala Cache-Control dan Tamat tempoh, memberitahu pelayar bahawa ini fail patut disimpan dalam cache pelanggan dan tidak membebankan pelayan kami unset beresp.http.Cache-Control; set beresp.http.Cache-Control = "public, max-age=604800"; set beresp.http.Expires = now + beresp.ttl ; ) # Jangan cache admin dan halaman log masuk jika (bereq.url ~ "wp-(login|admin)" || bereq.url ~ "preview=true") ( set beresp.uncacheable = true; set beresp.ttl = 30s; return (hantar); ) # Benarkan kuki ditetapkan hanya apabila mengakses laluan ini, semua yang lain akan dipotong jika ( !( bereq.url ~ "(wp-login|wp-admin|preview=true)")) ( unset beresp.http.set-cookie; ) # Jangan cache hasil jawapan kepada permintaan POST atau kebenaran Asas if (bereq.method = = "POST" || bereq.http.Authorization) ( set beresp.uncacheable = true; set beresp.ttl = 120s; return (hantar); ) # Jangan cache hasil carian jika (bereq.url ~ "\?s=" )( set beresp.uncacheable = true; set beresp.ttl = 120s; return (hantar); ) # Jangan cache halaman ralat, hanya perkara yang perlu dalam cache! if (beresp.status != 200) ( set beresp.uncacheable = true; set beresp.ttl = 120s; return (hantar); ) # Simpan semua yang lain dalam cache untuk satu hari set beresp.ttl = 1d; # Cache seumur hidup selepas TTLnya tamat tempoh set beresp.grace = 30s; pulangkan (menyampaikan); ) # Tindakan sebelum mengembalikan hasil kepada sub pengguna vcl_deliver ( # Alih keluar pengepala yang tidak diperlukan unset resp.http.X-Powered-By; unset resp.http.Server; unset resp.http.Via; unset resp.http.X-Varnish ; pulangkan (serahkan);)
Kemudian kami menjalankan arahan:

Perkhidmatan varnis dimulakan semula
Sekarang pergi ke laman web kami dalam penyemak imbas, kami akan melihat index.php, yang mesti dibuat terlebih dahulu.

Masalah varnis dan Debian 8
Bagaimana jika anda ingin menukar port di mana Varnish akan menerima sambungan masuk atau menukar saiz cache. Berdasarkan dokumentasi rasmi, anda perlu menukar fail dengan parameter pelancaran Varnish, terletak di laluan: /etc/default/varnish dan mulakan semula perkhidmatan. Tetapi tidak! Tiada apa-apa yang akan berubah, dan jika kita pergi ke atas dan menekan kekunci 'c', kita akan melihat bahawa perkhidmatan itu berjalan dengan tetapan yang sama. Masalahnya ialah versi baharu Debian menggunakan systemd dan bukannya init.d sebagai sistem permulaan, dan oleh itu anda perlu pergi ke fail /lib/systemd/system/varnish.service dan nyatakan parameter pelancaran yang sama dalam arahan ExecStart di sana:

Perihalan=Varnish HTTP accelerator Type=forking LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStartPre=/usr/sbin/varnishd -C -f /etc/varnish/default.vcl ExecStart=/usr/sbin/varnishd -a:6081 -T. 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
Selepas menyimpan, jalankan arahan berikut untuk membuat perubahan berkuat kuasa:

Systemctl daemon-reload service varnis dimulakan semula
Pada masa ini, masalah ini telah diberikan kepada pemaju, tidak diketahui bila dan bagaimana mereka akan menyelesaikannya, jadi untuk berjaga-jaga, buat perubahan yang sama dalam kedua-dua fail supaya satu hari selepas kemas kini semuanya tidak ranap.

Memasang dan mengkonfigurasi PHP-FPM

Pasang FPM dan perpustakaan PHP untuk bekerja dengan DBMS:

Apt-get install php5-fpm php5-mysqlnd
Pergi ke fail konfigurasi /etc/php5/fpm/pool.d/www.conf dan tukar arahan:

Dengar = 127.0.0.1:9000
Kepada yang berikut:

Dengar = /var/run/php5-fpm.sock
Dalam fail yang sama kami menetapkan tetapan pekerja:

; Mengubah bilangan pekerja secara dinamik pm = dinamik; Bilangan maksimum pekerja yang dibuat di bawah beban tidak boleh kurang daripada pm.max_spare_servers. pm.maks_kanak-kanak = 10 ; Berapa ramai pekerja untuk dilancarkan di FPM mula pm.start_servers = 1 ; Bilangan minimum pekerja ganti (kekal dalam ingatan apabila tiada beban) pm.min_spare_servers = 1 ; Bilangan maksimum pekerja ganti (jika terbiar, baki yang tidak digunakan akan ditamatkan) pm.max_spare_servers = 3 ; Bilangan maksimum permintaan yang dibuat oleh seorang pekerja sebelum memulakan semula pm.max_requests = 500
Menukar beberapa arahan dalam /etc/php5/fpm/php.ini
upload_max_filesize = 10M post_max_size = 12M allow_url_fopen = Mati
post_max_size ditetapkan sedikit lebih besar daripada upload_max_filesize, kerana sebagai tambahan kepada fail, permintaan itu mengandungi data lain.
Di sini, dengan arahan allow_url_fopen, kami melarang pelaksanaan skrip yang terletak dari jauh (menghapuskan kemungkinan mengeksploitasi kerentanan kemasukan jauh).

Muat semula perkhidmatan php5-fpm
Sekarang buat fail yang mengeluarkan phpinfo() dan aksesnya dalam penyemak imbas, semuanya akan berfungsi. Jangan lupa bahawa ia sudah dicache dalam Varnish dan jika anda menukar konfigurasi PHP, ia tidak akan dikemas kini dalam penyemak imbas anda. Anda boleh menulis peraturan untuk melangkau fail ini dalam Varnish, atau semasa ujian anda boleh membuat proksi bukan Varnish, tetapi secara langsung bahagian belakang pada port 81.

Memasang dan mengkonfigurasi MariaDB

Saya memilih DBMS ini kerana prestasi dan keupayaannya yang lebih baik untuk menahan beban yang berat, sambil menggunakan kurang RAM berbanding MySQL, serta keserasian penuhnya dengan WordPress. Pemasangan adalah sangat mudah, anda akan diminta untuk kata laluan untuk pengguna root.

Apt-get install mariadb-server
Saya menggunakan MyISAM sebagai enjin untuk jadual, kerana fakta bahawa menulis pada jadual jarang dilakukan, dan MyISAM menunjukkan prestasi yang lebih baik apabila membaca. Saya melumpuhkan sepenuhnya sokongan InnoDB untuk membebaskan RAM. Tetapan disimpan dalam fail /etc/mysql/my.cnf. Saya akan menerangkan hanya arahan yang saya ubah:

# Cache untuk bekerja dengan kunci dan indeks key_buffer = 64M # Query cache query_cache_size = 32M # Memasang MyISAM sebagai enjin standard-storage-enjin=MyISAM # Melumpuhkan enjin InnoDB skip-innodb
Selepas menyimpan perubahan, mulakan semula perkhidmatan:

Perkhidmatan mysql dimulakan semula

Persediaan WordPress - Pemalam Pembersihan HTTP Varnish

Pasang pemalam "Varnish HTTP Purge" dalam panel pentadbiran WP. Kini, apabila mengemas kini data, permintaan PURGE akan dihantar ke halaman yang diubah, mengosongkan cache dalam Varnish dan data akan sentiasa dikemas kini untuk pelawat.

Pengoptimuman tambahan

Untuk mengoptimumkan bahagian klien dengan Varnish, kami memberitahu penyemak imbas untuk menyimpan data statik dalam cache setempat pelanggan. Tetapi jika anda mahukan lebih pengoptimuman, pergi ke developers.google.com/speed/pagespeed/insights dan masukkan URL tapak anda atau halaman tertentu. Anda akan diberikan senarai pengesyoran, dan juga akan ditawarkan arkib dengan versi mampat gaya css dan js anda. Gantikannya di tapak web anda dan dapatkan kelajuan pemuatan yang lebih pantas kerana jumlah data yang dipindahkan yang berkurangan, beban pada pelayan dan ruang yang diduduki oleh fail ini dalam cache juga akan dikurangkan.

Bagaimana untuk menangani dokumen yang diminta daripada pelayan pihak ketiga, seperti fon atau perpustakaan jquery? Anda boleh memindahkannya kepada diri sendiri, dan di sini, kerana mewujudkan sambungan dengan hanya satu pelayan, kelajuan memuatkan halaman akan meningkat, bagaimanapun, pada masa yang sama, senarai permintaan dan beban keseluruhan akan meningkat. Pilihan yang mana untuk dipilih - tentukan sendiri, bergantung pada beban pada pelayan anda dan kemalasan anda.

Pokoknya

Untuk sebahagian besar, pemampatan gzip dan caching Varnish mempunyai kesan yang paling besar. Banyak kaedah pengoptimuman tambahan telah ditulis dalam ulasan, yang pasti saya akan kaji dan laksanakan jika perlu. Setakat ini, hasil pengoptimuman adalah seperti berikut:
Sebelum ini


Selepas


Saya akan menjalankan ujian tekanan penuh sedikit kemudian.

Setiap orang telah mendengar sekurang-kurangnya sekali tentang beberapa jenis pendapatan di Internet. Tetapi sementara penulisan salinan dan penulisan semula disebut agak kerap, mereka terlupa untuk bercakap tentang siaran. Apakah pengeposan? Berapa banyak yang anda boleh perolehi daripadanya? Apakah siaran sosial? rangkaian dan bagaimana ia berbeza daripada menyiarkan di blog atau forum? Anda akan mendapat jawapan kepada soalan ini dan soalan lain dalam artikel.

Apakah pengeposan?

Penyiaran ialah proses menulis mesej atau catatan kecil di tapak yang direka khusus untuk tujuan ini. Malah, penyiaran adalah jenis penulisan salinan tertentu. Sumber tersebut boleh menjadi blog, rangkaian sosial, buku tetamu, forum, dsb. Mesej yang disampaikan oleh poster dipanggil siaran. Panjangnya biasanya berkisar antara 100 hingga 300 aksara. Pautan di tapak diterbitkan sama ada secara langsung dalam mesej, jika dibenarkan oleh peraturan sumber yang membuat penyiaran, atau dalam medan yang ditetapkan khas.

Terdapat lebih banyak jenis penyiaran yang mempunyai tugas yang berbeza.

Mengapa pengeposan perlu?

Terdapat tiga sebab utama untuk memesan siaran: untuk mengiklankan produk atau sumber, untuk menarik pelawat ke tapak, promosi dengan sedikit wang dengan menerima pautan tematik dari tapak lain.

Apakah pengeposan? Salah satu kaedah pengiklanan yang paling popular dan memikat pengunjung ke laman web ini. Ia sangat diminati di kalangan profesional yang aktivitinya berkaitan dengan Internet. Perkhidmatan penyiaran digunakan dalam pelbagai situasi, tetapi antara mereka yang paling biasa dan penting boleh dikenal pasti.

Siaran untuk menarik pengunjung

Apakah pengeposan? Salah satu cara untuk menarik pelawat berkomunikasi di forum yang baru dibuka, untuk menarik minat mereka dan mendorong mereka ke dalam perbualan. Walaupun dengan pengiklanan yang paling berjaya, adalah mustahil untuk membawa pelawat ke sumber untuk berkomunikasi jika ia tidak mempunyai sekurang-kurangnya kandungan awal. Bagaimanakah pelawat boleh menyertai perbincangan jika ia belum wujud lagi?

Untuk tujuan ini pemilik forum mengupah pasukan profesional yang akan dapat menyiarkan - mengisi sumber dengan mesej pertama yang berkualiti tinggi.

Forum di mana komunikasi terhenti atas sebab tertentu melakukan perkara yang sama: mereka menghasilkan kandungan baharu untuk mendorong pelawat berkomunikasi dan menghidupkan semula perbincangan.

Anda juga boleh menarik pelawat ke projek lain yang serupa menggunakan kaedah penyiaran, kerana mana-mana daripada mereka memerlukan kandungan yang dikemas kini secara berkala atau awal.

Rangkaian sosial popular di dunia moden. Apakah yang menyiarkan tweet baharu dengan pautan? Bagaimana pula dengan membuat siaran VKontakte? Ini adalah penyiaran teks yang sama dengan pautan, hanya pada tapak web pada mana-mana rangkaian sosial: dalam kumpulan atau pada halaman dengan trafik tinggi. Ini juga termasuk membuat nota dalam blog dan katalog.

Posting: jom promosikan diri dengan murah

Mari kita pertimbangkan faktor pautan semula jadi. Memandangkan blog, forum dan sumber yang serupa dibuka, malah lebih-lebih lagi, dicipta khas untuk tujuan menyiarkan mesej daripada pelawat, tiada satu penapis atau peraturan enjin carian boleh melarang pautan yang diterbitkan. Malah pakar carian yang melakukan pemeriksaan manual tidak mempunyai hak untuk melakukan ini. Sudah tentu, ini tidak bermakna anda perlu mengabaikan peraturan sumber yang anda siarkan.

Perkara subjek pautan juga memainkan peranan. Jika anda meletakkannya secara sembarangan di mana mungkin dan dalam kuantiti maksimum, ini tidak akan membawa kepada apa-apa yang baik. Pautan ini pudar lebih cepat daripada yang anda bayangkan, walaupun kaedah ini mempunyai sedikit kesan pada tapak anda. Masalah lain ialah sumber itu mungkin menghadapi sekatan atau bahkan diharamkan daripada semua enjin carian. Perbualan adalah mengenai keperluan untuk menggunakan perisian khusus untuk meletakkan pautan dalam pelbagai blog, buku tetamu dan forum.

Jadi, jika anda pemilik kedai dalam talian mainan kanak-kanak, maka anda harus menyediakan pautan secara eksklusif dari tapak produk kanak-kanak. Di samping itu, semua siaran mestilah berkualiti tinggi dan mematuhi peraturan sumber di mana ia disiarkan.

Pengeposan murah

Penyiaran ialah kaedah yang agak murah untuk mempromosikan sumber. Pentadbir tapak tidak memerlukan bayaran untuk pembayaran. Pembayaran hanya dibuat kepada mereka yang membuat siaran.

Mendapat wang dengan menghantar

Menjana wang dari posting bukan sahaja mudah, tetapi juga agak menarik. Jika anda menumpukan kira-kira 2 jam sehari untuk tugas itu, anda akan mempunyai masa untuk membuat kira-kira 30 siaran yang berkualiti. Sudah tentu, dengan lebih banyak masa lapang, anda boleh melakukan lebih banyak perkara.

Purata bayaran untuk kerja tersebut adalah lebih kurang 10-15 sen setiap pos. Terdapat pertukaran khas untuk berhubung dengan majikan. Dengan mendaftar pada beberapa daripada mereka, anda boleh memastikan diri anda mendapat pendapatan yang stabil dan tetap dengan menghantar.

Apakah faedah menyiarkan? Kesederhanaan tugas, cepat siap. Sudah tentu, siaran sebagai jenis copywriting bukanlah bayaran paling tinggi. Tetapi ia boleh menjadi titik permulaan yang sangat baik untuk pengarang yang baru mula menjana wang di Internet. Terdapat juga poster gemar yang pakar hanya dalam jenis penulisan salinan ini.