
Mobil NGINX oleh Walker Cahall
Pengantar
Cara ini akan membantu Anda menginstal dan mengonfigurasi NGINX sehingga Anda dapat menjalankan situs web dengan lalu lintas tinggi sambil mempertahankan kinerja tingkat tinggi yang diharapkan pelanggan Anda. Kami juga akan menginstal perangkat lunak tambahan untuk mendapatkan hasil maksimal dari NGINX, jadi panduan ini juga akan menyertakan instalasi dan konfigurasi MySQL, PHP-APC, dan PHP-FPM.
Mengapa NGINX? Ada perdebatan panjang tentang apakah Anda harus menggunakan Apache atau NGINX, dan sementara kinerja keseluruhan dari dua platform server web kira-kira sama, model pemrosesan berbasis peristiwa NGINX bersinar dengan menjadi sederhana, ringan, dan lebih baik dalam menangani besar jumlah klik serentak untuk konten statis tanpa membebani perangkat keras server Anda secara berlebihan.
Apa yang Anda Butuhkan?
– Anda memerlukan server CentOS 7 yang dikonfigurasi dengan alamat IP statis. Jika Anda belum memiliki server, Anda dapat mengunjungi halaman Hosting VPS kami dan menjalankan server baru dalam waktu kurang dari 30 detik.
Persiapan Server
Untuk memulai, login ke server CentOS Anda melalui SSH. Server Atlantic.Net Cloud diatur sebagai instalasi minimal untuk menghindari paket yang tidak perlu diinstal dan tidak pernah digunakan. Karena itu, kita akan memulai dengan menginstal beberapa paket yang tidak ada secara default.
yum install wget
yum install nano
Setelah Anda masuk, pastikan server Anda benar-benar mutakhir.
pembaruan enak
Dengan server yang terbaru, kami dapat melanjutkan proses dan menginstal NGINX. Karena NGINX tidak termasuk dalam repositori CentOS default, kami akan menggunakan repo Paket Ekstra untuk Enterprise Linux (EPEL). Kami juga akan menggunakan paket dari repositori REMI lebih lanjut dalam prosesnya, jadi mari unduh dan instal juga.
Anda dapat menginstal EPEL versi terbaru menggunakan perintah berikut:
yum install epel-release -y
Sebelum kita melanjutkan, kita juga akan membuat user dan group baru yang akan digunakan oleh NGINX dan PHP-FPM. Jika Anda membiarkan pengguna dan grup menggunakan setelan default, semuanya akan tetap berfungsi untuk Anda, tetapi untuk membantu memberikan sedikit keamanan ekstra, kami akan membuat perubahan.
groupadd www-datauseradd -g www-data www-data
Sementara kita sedang mengerjakan persiapan server, mari kita lanjutkan dan menyiapkan direktori baru untuk server web kita. Biasanya orang menggunakan /var/www/html untuk situs mereka, tetapi saya selalu merasa lebih nyaman memiliki file situs di /home/domainname.tld/html , jadi itulah yang akan kita gunakan. Untuk panduannya, kami akan menggunakan example.tld sebagai domain kami — pastikan untuk memperbarui entri yang dicetak tebal agar cocok dengan domain yang Anda konfigurasikan.
mkdir -p /home/example.tld/htmlchown -R www-data:www-data /home/example.tld/chmod -R 0755 /home/example.tld/html
Sekarang setelah kita selesai menyiapkan server, kita dapat melanjutkan ke instalasi paket perangkat lunak kita.
Instal dan Konfigurasi MariaDB di CentOS 7
Pertama, instal paket server MariaDB dengan perintah berikut:
yum install mariadb-server -y
Setelah menginstal MariaDB, mulai layanan MariaDB dan aktifkan untuk memulai saat reboot sistem:
systemctl start mariadbsystemctl aktifkan mariadb
Selanjutnya, amankan instalasi MariaDB dengan perintah berikut:
mysql_secure_installation
Proses Instalasi Aman MySQL akan memandu Anda melalui perubahan keamanan awal yang harus diterapkan untuk instans MySQL baru Anda.
Catatan:Pilih kata sandi yang aman dan batasi akses root hanya untuk localhost.

mysql_secure_installation
Edit /etc/my.cf file agar sesuai dengan yang berikut, membatasi server hanya untuk mendengarkan koneksi lokal:
[mysqld]bind-address =127.0.0.1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Menonaktifkan tautan simbolik disarankan untuk mencegah berbagai macam risiko keamanansymbolic-links=0 [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mariadb/mariadb.pid
Kami akan memulai ulang semua layanan di akhir, jadi mari kita lanjutkan.
Instal dan Konfigurasi NGINX di CentOS 7
yum install nginx
Setelah terinstal, kita perlu memeriksa untuk melihat berapa banyak inti logis CPU yang tersedia di server Anda. Untuk melakukannya, jalankan perintah berikut:
grep -c 'nama model' /proc/cpuinfo
Catat hasilnya karena ini juga yang akan Anda lihat pada pengaturan worker_processes. Buka /etc/nginx/nginx.conf dan ganti konten saat ini dengan yang berikut:
user www-data;worker_processes 2;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type aplikasi/octet-stream; server_names_hash_bucket_size 64; error_log /var/log/nginx/error_log; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user sendfile aktif; keepalive_timeout 30; server_token nonaktif; gzip aktif; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; gzip_http_versi 1.1; gzip_vary aktif; gzip_proksi apa saja; gzip_comp_level 6; gzip_buffers 16 8k; gzip_types teks/teks biasa/aplikasi css/aplikasi json/teks x-javascript/aplikasi xml/aplikasi xml/xml+teks rss/aplikasi javascript/teks javascript/x-js; # situs yang diaktifkan termasuk /etc/nginx/conf.d/*.conf;}
Selanjutnya, kita perlu mengatur file konfigurasi domain kita. Ini dilakukan dengan membuat file baru bernama /etc/nginx/conf.d/example.conf . Sekali lagi, pastikan untuk memperbarui entri yang dicetak tebal agar sesuai dengan domain yang Anda tambahkan.
server { mendengarkan 80; nama_server contoh.tld; client_max_body_size 5m; client_body_timeout 60; access_log /var/log/nginx/example.tld_access; error_log /var/log/nginx/example.tld_error error; root /home/example.tld/html/; index index.html index.php; ### Peta situs SEO ### tulis ulang ^/sitemap_index\.xml$ /index.php?sitemap=1 last; tulis ulang ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last; ### direktori www ### lokasi / { try_files $uri $uri/ /index.php?$args; } ### keamanan ### error_page 403 =404; lokasi ~ /\. { access_log off; log_not_ditemukan mati; menyangkal semua; } lokasi ~ ~$ { access_log off; log_not_ditemukan mati; menyangkal semua; } lokasi ~* wp-admin/include { tolak semua; } lokasi ~* wp-includes/theme-compat/ { tolak semua; } lokasi ~* wp-includes/js/tinymce/langs/.*\.php { tolak semua; } lokasi /wp-content/ { internal; } lokasi /wp-includes/ { internal; } lokasi ~* wp-config.php { tolak semua; } ### nonaktifkan logging ### location =/robots.txt { access_log off; log_not_ditemukan mati; } location =/favicon.ico { access_log off; log_not_ditemukan mati; } ### cache ### lokasi ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; kedaluwarsa maks; } lokasi ~* \.(woff|svg)$ { access_log off; log_not_ditemukan mati; berakhir 30 hari; } ### php block ### location ~ \.php?$ { try_files $uri =404; termasuk fastcgi_params; fastcgi_pass unix:/var/run/php-www.socket; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors aktif; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_hide_header X-Diberdayakan-Oleh; }}
Karena kami mengubah pengguna yang menjalankan NGINX, kami perlu mengubah izin kepemilikan untuk file sementara NGINX.
chown -R www-data:www-data /var/lib/nginx/
chmod 700 /var/lib/nginx/
Sekali lagi, kami akan memulai kembali semua layanan di akhir. Selanjutnya, alih-alih menginstal versi lengkap PHP di server, kita akan beralih ke PHP-FPM – implementasi PHP FastCGI alternatif.
Instal dan Konfigurasi PHP-FPM di CentOS 7
Catatan:Setelah penginstalan, kami perlu memperbarui setelan “cgi.fix_pathinfo” untuk menonaktifkan potensi kerentanan yang memungkinkan pihak ketiga mengeksekusi kode PHP mereka sendiri di server baru Anda.
Pertama, instal repositori Remi dengan perintah berikut:
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Selanjutnya, instal PHP-FPM dengan ekstensi lain yang diperlukan menggunakan perintah berikut:
yum --enablerepo=remi-php74 install php-fpm php-mysql
nano /etc/php.ini
Ubah
;cgi.fix_pathinfo=1
untuk
cgi.fix_pathinfo=0
Buka /etc/php-fpm.d/www.conf dan ubah konfigurasi menjadi berikut:
[www]listen =/var/run/php-www.socketuser =www-datagroup =www-datalisten.owner =www-datalisten.group =www-datalisten.mode =0660listen =/var/run/php- www.socketrequest_slowlog_timeout =5sslowlog =/var/log/php-fpm/blogcms_loglisten.allowed_clients =127.0.0.1pm =dynamicpm.max_children =10pm.start_servers =3pm.min_spare_servers =2pm.max_spare_servers =4pm.max_listenquestslog =4pm. .status_path =/statusrequest_terminate_timeout =120srlimit_files =131072rlimit_core =unlimitedcatch_workers_output =yesphp_value[session.save_handler] =filesphp_value[session.save_path] =/var/lib/php/sessionphp_admin_value[error_log] =/flag/log [log_errors] =aktif
Simpan perubahan Anda.
Instal dan Konfigurasi PHP-APC di CentOS 7
Bagian terakhir dari teka-teki ini adalah menginstal akselerator PHP untuk lebih meningkatkan waktu pemuatan file statis.
yum --enablerepo=remi-php74 install php-pecl-apc
Setelah instalasi selesai, buka /etc/php.d/50-apc.ini dan ganti isinya dengan yang berikut ini:
Sentuhan Akhir
Sekarang setelah semuanya selesai, kami dapat memverifikasi konfigurasi NGINX kami dengan menjalankan:
nginx -t
Jika konfigurasi kembali dengan “nginx:file konfigurasi /etc/nginx/nginx.conf test is success”, kita dapat memulai (atau me-restart) semua layanan dan memastikan bahwa semua layanan diatur untuk memulai pada startup sistem.
systemctl start mariadb; systemctl aktifkan mariadbsystemctl start nginx; systemctl aktifkan mariadbsystemctl start php-fpm; systemctl aktifkan php-fpm
Sebagai langkah terakhir kami, kami akan memverifikasi bahwa konfigurasi berfungsi dengan membuat halaman pengujian info.php, dan memindahkan salinan index.html default ke direktori home situs kami. Seperti sebelumnya, pastikan untuk memperbarui entri yang dicetak tebal dengan domain yang Anda siapkan.
cp -R /usr/share/nginx/html/* /home/example.tld/html/
nano /home/example.tld/html/info.php
Menguji Semuanya
Mengunjungi http://example.tld harus menampilkan file index.html default. Mengunjungi http://example.tld /info.php harus menampilkan informasi tentang PHP.
Dengan itu, Anda sekarang memiliki server yang menjalankan semua komponen yang diperlukan untuk menjalankan situs web Anda!
Harap periksa kembali di sini untuk pembaruan lebih lanjut, dan untuk mempertimbangkan server pribadi virtual terdepan di pasar dari Atlantic.Net.