WordPress on Nginx, Part 1: Preparing VPS the Debian Way

Pengembang Tema didorong keluar pembaruan titik yang datang dengan tidak ada info tentang apa semua file telah berubah sehingga saya bisa melakukan drag cepat dan penggantian drop file untuk patch-up bekerja.
Namun, apa yang tampak seperti beban kerja yang sangat membosankan untuk melanjutkan, ternyata cukup menarik. Nah, memperbarui tema, dan kemudian termasuk penyesuaian saya sama sekali tidak menarik ... apa yang bukan, telah mengubah arsitektur dari situs - dari LAMP untuk Lemp.
Sejak November, linuxforu.com diselenggarakan pada fasilitas jaringan hosting MediaTemple (gs), dengan wadah MySQL didedikasikan untuk memberikan beberapa sangat dibutuhkan "khusus" meningkatkan. Caching merupakan tanggung jawab W3 Jumlah Cache - dan dengan demikian melayani lebih dari 100.000 halaman per bulan sejak itu telah menjadi anak bermain. (! Para tetua mungkin ingat masalah performa dengan website sebelum Desember 2011) Alasan untuk pergi dengan MediaTemple itu gs Hosting adalah apa yang datang sebagai yang diberikan dengan shared-server jenis lingkungan hosting - keamanan adalah sakit kepala dari perusahaan hosting.
Namun, setelah Anda pindah ke VPS / lingkungan Cloud, OS pengerasan tiba-tiba menjadi tanggung jawab webmaster - bau bagi saya karena saya memakai topi yang sejak November tahun lalu.
Yah, bagaimanapun - beberapa minggu lalu saya melakukan beralih website ini ke Server Cloud Rackspace 512MB untuk sedikit lebih dari 24 jam untuk pengujian stres, dan benar-benar melihat peningkatan kinerja (khusus backend - yang saya perlu menggunakan sebagian besar waktu tidak seperti pengunjung kami). Itu tentu saja setup Lemp (perhatikan E?).
Mengapa Lemp? Yah, itu sesuatu yang baru bagi saya mencoba-coba dengan ... Selain WordPress.com berjalan di atasnya. Dan Boudhayan, lama LFY penulis dan teman baik saya, menulis tutorial singkat tentang beralih dari LAMP untuk Lemp pada bulan Desember, yang semacam memberi saya push untuk check it out untuk diri saya sendiri.


Jadi, resep saya bagi mereka 24 jam adalah ini:

    
Debian 6.0 64-bit OS di Server Cloud Rackspace 512MB
    
Nginx 1.0.x (dari repo dotdeb) untuk Web Server
    
MariaDB 5,3 (dari saluran mariadb resmi) untuk kebutuhan DB WP yang
    
PHP-FPM (dari repo dotdeb) untuk PHP-FastCGI di Nginx kebutuhan
    
W3 Jumlah Cache dengan APC merawat cache objek - untuk kebutuhan caching ini website
Dan, untungnya, berjalan lancar cukup sebelum saya membuat beralih kembali ke Apache MediaTemple itu. Selain Nginx, di mana saya benar-benar harus mengatur virtual host ... sisa potongan - MariaDB, APC, PHP-FPM - adalah benar-benar konfigurasi vanili dengan tidak ada perubahan konfigurasi di atas yang keluar dari kotak.
Dengan demikian, ide tersebut ditanam di (tulang) kepalaku.Mengambil isyarat dari pengalaman Rackspace rencana saya adalah untuk setup DR (pemulihan bencana) gambar siap pada Rack dan membuangnya pada penyimpanan CloudFiles nya.
Tapi aku harus menjalankan website selama satu bulan untuk mencari tahu masalah apapun jika kita melanjutkan dengan setumpuk Lemp untuk penggunaan masa depan kita. (Yah, aku tidak mengatakan kita tidak beralih kembali ke MT, aku File-file tersebut? Terbaring di sana saya hanya perlu mengimpor dump MySQL,. Menjalankan rsync untuk melakukan sinkronisasi wp-content/uploads / folder antara dua server , dan mengubah DNS - semua ini hampir tidak membutuhkan waktu satu jam).
Hal ini dimulai dengan GoDaddy menawarkan diskon 98% pada penawaran mereka 1GB awan untuk bulan pertama. Keren. Rs 54 untuk satu bulan secara harfiah bebas biaya. Waktu untuk setup.
Apa? Debian No.
Baik, mari kita pergi dengan Ubuntu 10.04 LTS.
Terlalu banyak repo untuk setup hanya untuk mengambil versi terbaru dari Nginx, PHP-FPM dan APC. Semua dilakukan, tapi terlalu banyak usaha. Hapus. Fedora dan CentOS sebagai server keluar dari pertanyaan - bukan karena mereka buruk, tapi karena menjadi kurang akrab dengan lingkungan-lingkungan.
Saya sendiri menjadi sebuah cheapstear - Maksudku, yang ingin menghabiskan bom hanya untuk POCs? ;-) - Aku menuju ke Hetzner.de untuk memperoleh VPS 2GB (yeah, bukan awan, tapi apa sih!).
Jadi, apa resep baru saya kali ini?

    
Debian 6.0 32-bit pada Hetzner 2GB VPS (satunya downside adalah yang satu ini menawarkan single core dibandingkan dengan 4 Rackspace itu persembahan inti virtual)
    
Nginx 1.0.x (dari repo dotdeb) untuk Web Server
    
MySQL 5.5 (dari repo dotdeb) untuk kebutuhan DB WP yang
    
PHP-FPM (dari repo dotdeb) untuk PHP-FastCGI di Nginx kebutuhan
    
W3 Jumlah Cache dengan APC merawat objek dan cache database - untuk kebutuhan caching ini website
    
Varnish 3.0 (dari repo Varnish resmi) sebagai akselerator HTTP.(Ini dinonaktifkan untuk saat ini, karena saya tidak dapat memberikan pengalaman tema ramping dan terpisah mobile - home page adalah desktop, tapi artikel itu WPTouch - aneh, bukan ahli, petunjuk tidak, terlalu malas untuk membawanya ke depan dibuang.. )
Untuk diketahui: kami lapisan DNS adalah CloudFlare dan W3 Cache Total dengan halaman dan mengecilkan pada disk (DB dan cache objek dinonaktifkan), dan CDN untuk memberikan konten statis (awalnya dari Amazon CloudFront, dan sekarang dari MaxCDN) yang telah digunakan dengan MediaTemple pengaturan juga. Selain itu, daftar plugin WP juga tidak berubah.
Alasan untuk CloudFront pembuangan akhir Desember sederhana - CSS dan file JS yang disampaikan oleh CDN tidak gzip. Aku mengumpulkan teks gzipping file tidak ditawarkan oleh Amazon CloudFront - setidaknya saya kacang-otak tidak bisa mengidentifikasi pengaturan seperti pada dashboard mereka.Menjadi pengisap untuk nilai Page Speed ​​(skor kita saat ini adalah 94/100), saya membuat beralih ke MaxCDN karena memungkinkan teks gzipping file sederhana seperti memeriksa sebuah kotak centang. (Perhatikan bahwa MaxCDN memiliki server Ujung lebih rendah dibandingkan dengan CloudFlare, tetapi mereka benar-benar setengah harga dari CloudFront.)
Yah, dengan pengenalan yang lebih. Mari kita turun ke konfigurasi sebenarnya - berdasarkan tutorial dari seluruh Web.Debian pada VPS - pengerasan itu sedikit
Saya memilih 32-bit minimal Debian. Hetzner waktu lebih dari 12 jam untuk penyediaan VPS. Karena pada saat ini saya sudah menyerah berkat Ubuntu GoDaddy untuk sakit kepala mendirikan tumpukan Lemp pada 10,04 LTS, saya berpikir menyiapkan template Lemp pada Server Rackspace Cloud - mereka penyediaan server, karena keuntungan yang datang dengan penawaran Cloud, dalam waktu kurang dari 5 menit.
Idenya adalah untuk bangun tumpukan Lemp dengan dukungan WP, dan rsync konfigurasi ke VPS Hetzner sekali saya mendapatkan akses. Rackspace tagihan hanya untuk jam saya menggunakan infra mereka, jadi saya tetap sampai aku VPS lain, dan kemudian membuang ke cadangan penyimpanan CloudFiles mereka, dan menghapus contoh server. Latihan ini benar-benar memberi saya ide badan DR bahwa saya bisa mengelola jika manajemen LFY memutuskan untuk pergi dengan Rackspace dan WP atas Lemp untuk jangka panjang.
Hal pertama adalah untuk membuat akun user baru:# Useradd-m <user-name># Passwd <user-name>
Sekarang, buka file / etc / ssh / file sshd_conf, cari direktif berikut:PermitRootLogin yes
... Dan mengubah ini untuk membaca:PermitRootLogin no
Ini berarti, login root SSH sekarang dinonaktifkan. Jadi, mulai sekarang, kita login sebagai user biasa dan su - untuk melakukan hal-hal admin.
Sebelum kita membuat firewall, login melalui SSH sebagai <user-name> kita buat sebelumnya untuk semua tes tersebut bekerja.Jika berhasil, reload konfigurasi SSH berubah menjadi memori sehingga login root ditolak oleh server SSH selanjutnya:/ Etc / init.d / ssh restart
 # apt-get update
# apt-get dist-upgrade
# apt-get install ufw

UFW (Firewall tanpa komplikasi) adalah luar biasa mudah-ke-setup firewall perangkat lunak yang belum pernah saya dengar sebelumnya, tapi menyukai fakta bahwa dengan menggunakannya saya tidak perlu untuk mencoba-coba ke dunia perintah iptables lagi.

 Yang hanya port yang harus menjadi tersedia melalui www adalah 22 untuk SSH, dan 80 untuk mengakses web server. Jadi, jalankan:

 # ufw allow www
# ufw allow ssh
# ufw default deny
# ufw enable


 Menjalankan perintah terakhir akan memperingatkan Anda bahwa sesi SSH Anda bisa terganggu - karena kita sudah berhasil menguji koneksi SSH untuk <user-name> setelah menonaktifkan login root, itu aman untuk menekan y untuk konfirmasi. Ini, bagaimanapun, tidak mengganggu sesi SSH saya - banyak untuk panik-driven peringatan palsu ;-)
 Jalankan perintah berikut untuk memeriksa status firewall:# Ufw statusnyaStatus: Aktiv
 
Untuk Aksi Dari------------22 MENGIZINKAN Dimana Saja80 MENGIZINKAN Dimana Saja
Cukup baik. Anda mungkin ingin membaca panduan UFW yang sangat baik untuk menyesuaikan pengaturan firewall lebih lanjut sesuai dengan keinginan Anda.
Waktu mengeras OS sedikit lebih terhadap beberapa serangan liar yang server mungkin dikenakan.
Mengambil isyarat dari artikel ini nixCraft sangat baik, buka / etc / sysctl.conf, periksa apa semua hal yang sudah ada di sana dan kemudian masukkan sisa arahan berikut dalam file tersebut:

 # Hindari serangan smurfnet.ipv4.icmp_echo_ignore_broadcasts = 1
 
# Aktifkan perlindungan buruk pesan kesalahan icmpnet.ipv4.icmp_ignore_bogus_error_responses = 1
 
# Hidupkan syncookies untuk perlindungan serangan SYN floodnet.ipv4.tcp_syncookies = 1
 
# Hidupkan dan login palsu, source routed, dan redirect paketnet.ipv4.conf.all.log_martians = 1net.ipv4.conf.default.log_martians = 1
 
# Tidak ada paket sumber dialihkan sininet.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0
 
# Aktifkan reverse path filteringnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.rp_filter = 1
 
# Pastikan tidak ada yang dapat mengubah tabel routingnet.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0net.ipv4.conf.all.secure_redirects = 0net.ipv4.conf.default.secure_redirects = 0
 
# Jangan bertindak sebagai routernet.ipv4.ip_forward = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0
 
# Hidupkan execshildkernel.exec-perisai = 1kernel.randomize_va_space = 1
 
# Tuen IPv6net.ipv6.conf.default.router_solicitations = 0net.ipv6.conf.default.accept_ra_rtr_pref = 0net.ipv6.conf.default.accept_ra_pinfo = 0net.ipv6.conf.default.accept_ra_defrtr = 0net.ipv6.conf.default.autoconf = 0net.ipv6.conf.default.dad_transmits = 0net.ipv6.conf.default.max_addresses = 1
 
# Optimasi untuk LBS usefor pelabuhan# Meningkatkan sistem batas file descriptorfs.file-max = 65535
 
# Memungkinkan PID lebih (untuk mengurangi masalah rollover); bisa pecah beberapa program 32768kernel.pid_max = 65536
 
# Meningkatkan batas sistem IP portnet.ipv4.ip_local_port_range = 2000 65000
 
# Meningkatkan TCP max ukuran buffer setsockopt menggunakan setable ()net.ipv4.tcp_rmem = 4096 87380 8388608net.ipv4.tcp_wmem = 4096 87380 8388608
 
# Meningkatkan auto tuning batas Linux TCP penyangga# Min, default, dan jumlah maksimal byte untuk menggunakan# Set max untuk setidaknya 4MB, atau lebih tinggi jika Anda menggunakan path BDP sangat tinggi# TCP Windows dllnet.core.rmem_max = 8388608net.core.wmem_max = 8388608net.core.netdev_max_backlog = 5000net.ipv4.tcp_window_scaling = 1
Memuat arahan ke memori menggunakan perintah berikut:# Sysctl-p
Periksa output untuk setiap pesan error - memperbaiki mereka, mengambil kembali - dan dilakukan.
Tahap berikutnya adalah mendapatkan server siap untuk menginstal stack LempMengambil Nginx, PHP-FPM, APC & MySQL
Default Debian repo mengandung versi Nginx dan MySQL.Pengelola sangat baik di DotDeb menawarkan sumber-6.0 kompatibel Debian dengan paket terbaru dari server ini.
Buka file / etc / apt / sources.list dan tambahkan pernyataan berikut untuk setup repo:
 #Dotdeb repo
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

Next up, import the signing key to apt as follows:
# wget http://www.dotdeb.org/dotdeb.gpg
# cat dotdeb.gpg | apt-key add -

Time to install Nginx, MySQL, PHP-FPM and other essential packages:
# apt-get install nginx-full
# apt-get install mysql-server-5.5
# apt-get install php5-fpm php5-mysql php5-apc php5-xsl php5-xmlrpc php5-sqlite php5-curl php5-gd php5-tidy

While you’re on an apt-get mood, go ahead and install the following two utilities as well:
# apt-get install rsync htop




rsync akan membantu kita nanti untuk mengambil file WordPress dari server saat ini, sementara htop adalah pilihan pribadi atas perintah atas - hanya tampak sedikit lebih baik :-)





 Sebuah konsumsi memori 114MB setelah membuat situs Wordpress, dan tepat setelah reload nginx, php-fpm dan mysql jasa (lebih lanjut tentang nanti) sangat mengesankan.

By the way, kita belum mengatur zona waktu server yang belum, telah kita? Jalankan berikut untuk set ke waktu lokal Anda:

 # dpkg-reconfigure tzdata




#SUMBER ##  http://www.linuxforu.com/2012/02/wordpress-nginx-part-1-preparing-vps-debian-linux/

0 Response to "WordPress on Nginx, Part 1: Preparing VPS the Debian Way"

Post a Comment