GNU/Linux >> Belajar Linux >  >> AlmaLinux

Cara Install Nginx di AlmaLinux 8

NGINX adalah open-source, perangkat lunak server HTTP gratis. Selain kemampuan server HTTP, NGINX juga dapat berfungsi sebagai server proxy untuk email (IMAP, POP3, dan SMTP) dan proxy terbalik dan penyeimbang beban untuk server HTTP, TCP, dan UDP. Tujuan di balik NGINX adalah untuk menciptakan server web tercepat, dan mempertahankan keunggulan itu masih menjadi tujuan utama proyek Nginx. NGINX secara konsisten mengalahkan Apache dan server lain dalam tolok ukur yang mengukur kinerja server web dan sekarang menjadi server web paling populer yang digunakan menurut W3Tech.

Dalam tutorial ini, Anda akan mempelajari cara menginstal Nginx di AlmaLinux 8 dengan sertifikat TLS/SSL gratis dari Let's Encrypt.

Prasyarat

  • OS yang Disarankan: AlmaLinux 8.
  • Akun pengguna: Akun pengguna dengan hak istimewa sudo atau akses root (perintah su) .

Memperbarui Sistem Operasi

Perbarui AlmaLinux . Anda sistem operasi untuk memastikan semua paket yang ada mutakhir:

sudo dnf upgrade --refresh

Tutorial akan menggunakan perintah sudo dan dengan asumsi Anda memiliki status sudo .

Untuk memverifikasi status sudo di akun Anda:

sudo whoami

Contoh keluaran yang menunjukkan status sudo:

[joshua@localhost ~]$ sudo whoami
root

Untuk mengatur akun sudo yang ada atau baru, kunjungi tutorial kami di Cara Menambahkan Pengguna ke Sudoers di AlmaLinux .

Untuk menggunakan akun root , gunakan perintah berikut dengan kata sandi root untuk masuk.

su

Instal Nginx

Metode 1. Instal Nginx dari AlmaLinux AppStream

Metode pertama adalah menginstal Nginx dari aliran Aplikasi AlmaLinux. Versi ini lebih tua tetapi stabil dan aman. Jika Anda perlu menjalankan server web utama atau proxy terbalik, sering disarankan untuk menginstal repositori App Stream.

Untuk menginstal Nginx, jalankan perintah berikut.

sudo dnf install nginx

Contoh keluaran:

Ketik “Y” , lalu tekan “ENTER KEY” untuk melanjutkan penginstalan.

Selanjutnya, verifikasi versi build dan apakah instalasi berhasil.

sudo nginx -v

Contoh keluaran:

nginx version: nginx/1.14.1

Catatan, output Anda akan berbeda tergantung pada modul yang Anda aktifkan.

Sebelum melanjutkan, Anda harus memulai layanan Nginx.

sudo systemctl start nginx

Selanjutnya, verifikasi status untuk memastikan tidak ada kesalahan.

systemctl status nginx

Contoh keluaran jika semuanya bekerja dengan benar:

Metode 2. Instal Nginx dari EPEL

Opsi kedua adalah menginstal Nginx dari repositori EPEL. Ini akan memberi Anda versi Nginx yang jauh lebih mutakhir yang masih dianggap stabil daripada menginstal versi terbaru dari Nginx itu sendiri. Prosesnya relatif mudah.

Pertama, instal repositori EPEL:

sudo dnf install epel-release

Contoh keluaran:

Ketik “Y”, lalu tekan “ENTER KEY” untuk melanjutkan penginstalan.

Sekarang, dengan EPEL terinstal, Anda perlu mengatur ulang modul Nginx.

sudo dnf module reset nginx

Selanjutnya, buat daftar modul yang tersedia dengan dnf dari semua repositori yang dikenal.

sudo dnf module list nginx

Contoh keluaran:

Seperti di atas, Anda dapat beralih ke versi stabil atau arus utama yang lebih tinggi. Perhatikan bahwa versi stabil selalu dalam nomor build, dan jalur utama secara alami adalah jalur utama.

Untuk mengaktifkan salah satu modul baru dari EPEL, gunakan yang berikut ini di terminal Anda.

Aktifkan kandang terbaru:

sudo dnf module enable nginx:1.20

Catatan untuk Nginx EPEL yang stabil: Ini dapat berubah di masa mendatang. Pastikan untuk membuat daftar modul dan tidak hanya menyalin dan menempel.

Aktifkan arus utama terbaru:

sudo dnf module enable nginx:mainline

Sekarang, instal Nginx:

sudo dnf install nginx

Contoh keluaran:

Ketik “Y”, lalu tekan “ENTER KEY” untuk melanjutkan penginstalan.

Selanjutnya, verifikasi versi build dan apakah instalasi berhasil.

sudo nginx -v

Contoh keluaran (Saluran Utama):

nginx version: nginx/1.19.10

Catatan, output Anda akan berbeda tergantung pada modul yang Anda aktifkan.

Sebelum melanjutkan, Anda harus memulai layanan Nginx.

sudo systemctl enable nginx --now

Selanjutnya, verifikasi status untuk memastikan tidak ada kesalahan.

systemctl status nginx

Contoh keluaran jika semuanya bekerja dengan benar:

Konfigurasikan Aturan Firewall

Itu tidak secara otomatis menambahkan aturan firewall ke port standar 80 atau 443 saat menginstal Nginx. Sebelum melanjutkan, Anda harus menetapkan aturan berikut, ini akan tergantung pada port apa yang akan Anda gunakan, tetapi semua opsi terdaftar.

Buka port 80 atau HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

Buka port 443 atau HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

Muat ulang firewall untuk menerapkan perubahan

sudo firewall-cmd --reload

Konfigurasi Server Nginx

Anda harus menyiapkan alamat IP server untuk disiapkan. Cara termudah untuk melakukannya adalah dengan yang berikut ini.

Temukan Alamat IP Server

Anda harus menyiapkan alamat IP server untuk penyiapan. Cara termudah untuk melakukannya adalah dengan yang berikut ini.

curl -4 icanhazip.com

Contoh keluaran:

XXX.XXX.XXX.XXX IP address

Jika perintah tidak berfungsi, kemungkinan besar Anda tidak menginstal paket curl. Jalankan perintah berikut:

sudo dnf install curl -y

Setelah Anda memiliki alamat IP server, buka Browser Internet favorit Anda, dan periksa apakah halaman arahan default berfungsi.

http://your_server_ip

Anda harus mendapatkan halaman berikut di Browser Internet Anda. Jika Anda tidak mendapatkan halaman ini tetapi halaman kesalahan Nginx, tidak apa-apa karena rilis EPEL mungkin berbeda. Anda sedang menguji untuk memastikan Anda dapat mencapai server Nginx.

Menyiapkan Direktori Sumber Situs

Dalam tutorial, Anda akan menyiapkan domain bernama example.com , tetapi Anda harus menggantinya dengan nama domain Anda . Tutorial akan membuat direktori web dan mengonfigurasi file situs di direktori induk /var/www/ .

Pertama, buat direktori, untuk example.com , sebagai berikut, menggunakan “-p” tandai untuk membuat direktori induk yang diperlukan:

sudo mkdir -p /var/www/your_domain/html

Kedua, Anda perlu menetapkan pemilik direktori.

sudo chown -R $USER:$USER /var/www/your_domain/html

Ketiga, tetapkan izin direktori, sehingga pemilik membaca, menulis, dan mengeksekusi file sementara hanya memberikan izin membaca dan mengeksekusi ke grup dan lainnya. Anda dapat memasukkan perintah berikut:

sudo chmod -R 755 /var/www/your_domain

Atau, Anda dapat menggunakan /usr/share/nginx/html sebagai gantinya, tetapi /var/www metode direktori direkomendasikan untuk pengguna baru.

Siapkan halaman Uji HTML

Keempat, buat halaman pengujian yang akan Anda gunakan untuk mengonfirmasi bahwa server Nginx Anda beroperasi.

nano /var/www/your_domain/html/index.html

Di dalam editor nano dan file baru yang telah Anda buat. Masukkan yang berikut ini.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Simpan file (CTRL+O), lalu keluar dari (CTRL+X) .

Buat Blok Server Nginx

Secara default, blok server Nginx, mirip dengan host virtual Apache, ditangani di /etc/nginx/conf.d direktori. Namun, penginstalan Nginx bervariasi dari berbagai versi dan distribusi yang memanfaatkan conf.d atau sites-available/sites-enabled secara default. Untuk tutorial, direktori situs akan digunakan untuk menjaga standar.

Pertama, buat direktori yang diperlukan untuk situs-tersedia dan berfungsi dengan situs . Pengguna Nginx juga akan terbiasa dengan pengaturan ini.

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

Selanjutnya, buka file nginx.conf Anda dan hapus atau komentari “include /etc/nginx/default.d/*.conf;” dan langsung di bawahnya tambahkan include “/etc/nginx/sites-enabled/*.conf;” .

Hanya contoh:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

###EDIT HERE###
#  include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

Seperti di atas, “#” komentar telah ditambahkan ke include conf.d baris, dan sertakan yang mendukung situs telah ditambahkan.

Simpan file (CTRL+O) dan keluar dari (CTRL+X) .

Selanjutnya, buat file konfigurasi blok server Anda. Nama your_domain.conf akan digunakan untuk tutorial ini, tetapi ini dapat diberi nama apa pun yang Anda inginkan.

sudo nano /etc/nginx/sites-available/your_domain.conf

Anda dapat menempelkan kode contoh berikut ke dalam blok. Ini hanya contoh khusus HTTP untuk pengujian dasar.

server {
 listen 80;
 listen [::]:80;

 root /var/www/your_domain/html;

  index index.html index.htm;
  server_name your_domain www.your_domain;

 location / {
  try_files $uri $uri/ =404;
 }
}

Contoh menunjukkan server Anda mendengarkan dua nama server, “domain_anda” pada port 80.

Anda perlu mengubah direktori root menjadi nama/lokasi direktori root yang Anda buat.

Mengaktifkan Blok Server Nginx

Anda harus menautkan file konfigurasi dari situs yang tersedia ke situs yang diaktifkan di direktori Nginx Anda untuk mengaktifkan blok server Nginx. Ini dapat dilakukan dengan perintah ln -s sebagai berikut.

sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Konfigurasi Akhir &Uji coba

Pada tahap terakhir, Anda harus membuka nginx.conf default Anda berkas.

sudo nano /etc/nginx/nginx.conf

Dan batalkan komentar pada baris berikut.

server_names_hash_bucket_size 64;

Ukuran keranjang hash nama server berubah karena terkadang masalah muncul saat menambahkan server tambahan.

Selanjutnya, uji Nginx Anda untuk memastikannya berfungsi sebelum memulai ulang dengan benar.

sudo nginx -t

Outputnya harus jika tidak ada kesalahan dalam sintaks:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika Anda memiliki output ok berikut, mulai ulang server Nginx agar perubahan terjadi.

sudo systemctl restart nginx

Sekarang buka Browser Internet Anda dan ketik nama domain server. Anda akan melihat blok server Anda aktif.

Amankan Nginx dengan Let's Encrypt SSL Free Certificate

Idealnya, Anda ingin menjalankan Nginx di HTTPS menggunakan sertifikat SSL . Cara terbaik untuk melakukannya adalah dengan menggunakan Let's Encrypt, otoritas sertifikat gratis, otomatis, dan terbuka yang dijalankan oleh Internet Security Research Group (ISRG) nirlaba .

Pertama, instal EPEL repositori dan mod_ssl paket untuk paket dan keamanan yang lebih baik.

sudo dnf install epel-release mod_ssl -y

Selanjutnya, instal paket certbot sebagai berikut:

sudo dnf install python3-certbot-nginx -y

Setelah terinstal, jalankan perintah berikut untuk memulai pembuatan sertifikat Anda:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Ini adalah pengaturan ideal yang mencakup pengalihan paksa HTTPS 301, header Strict-Transport-Security, dan Stapling OCSP. Pastikan untuk menyesuaikan email dan nama domain dengan kebutuhan Anda.

Sekarang URL Anda akan menjadi HTTPS://www.example.com alih-alih HTTP://www.example.com .

Perhatikan, jika Anda menggunakan URL HTTP old yang lama , secara otomatis akan dialihkan ke HTTPS .

Secara opsional, Anda dapat mengatur tugas cron untuk memperbarui sertifikat secara otomatis. Certbot menawarkan skrip yang melakukan ini secara otomatis, dan Anda dapat menguji terlebih dahulu untuk memastikan semuanya berfungsi dengan menjalankan dry run.

sudo certbot renew --dry-run

Jika semuanya berfungsi, buka jendela crontab Anda dengan menggunakan perintah terminal berikut.

sudo crontab -e

Selanjutnya, tentukan waktu kapan harus diperpanjang secara otomatis. Ini harus diperiksa minimal setiap hari, dan jika sertifikat perlu diperbarui, skrip tidak akan memperbarui sertifikat. Jika Anda memerlukan bantuan untuk menemukan waktu yang tepat untuk menyetel, gunakan alat gratis crontab.guru.

00 00 */1 * * /usr/sbin/certbot-auto renew

Simpan (CTRL+O) lalu keluar dari (CTRL+X), dan cronjob akan diaktifkan secara otomatis.

Mengelola Layanan Nginx

Sekarang setelah Anda berhasil menjalankan Nginx di server Anda, beberapa keynote manajemen adalah sebagai berikut.

Untuk menghentikan server web Nginx:

sudo systemctl stop nginx

Untuk memulai server web Nginx:

sudo systemctl start nginx

Untuk memulai ulang server web Nginx:

sudo systemctl restart nginx

Untuk memuat ulang server web Nginx (Untuk perubahan kecil lainnya tidak memerlukan restart) :

sudo systemctl reload nginx

Untuk menonaktifkan Nginx pada boot server:

sudo systemctl disable nginx

Untuk memulai Nginx di server boot (Diaktifkan secara otomatis saat instalasi) :

sudo systemctl enable nginx

Cara Mengakses Log Server Nginx

Direktori Log Nginx

Secara default, semua log akses/kesalahan NGINX, kecuali Anda telah mengubahnya, terletak di direktori log, yang dapat dilihat oleh perintah berikut.

Pertama, navigasikan ke direktori log dan daftar file:

cd /var/log/nginx && ls -l

Anda harus menemukan file akses dan kesalahan berikut:

Log Akses:

/var/log/nginx/access.log

Log Kesalahan:

/var/log/nginx/error.log

Untuk melihat log secara real-time di terminal Anda menggunakan perintah sudo tail -f /location/of/log path.

Contoh:

sudo tail -f /var/log/nginx/access.log

Pilihan lain adalah mencetak jumlah baris X terakhir. Misalnya, X diganti dengan 30 untuk mencetak 30 baris dengan menambahkan -n 30 flag .

sudo tail -f /var/log/nginx/access.log -n 30

Ini hanyalah beberapa contoh dari membaca log, dan grep juga dapat membantu.

Cara Mengonfigurasi Putar Log Nginx

Nginx secara otomatis menginstal rotasi log dan mengonfigurasinya ke default yang berputar setiap hari. Anda dapat mengubah pengaturan ini dengan mengakses file seperti yang ditunjukkan di bawah ini.

sudo nano /etc/nginx/logrotate.d/nginx

Selanjutnya, Anda akan melihat struktur file yang sama jika tidak mirip. Anda dapat mengubah konten di sini. Sebagian besar Anda dapat mengubah berapa banyak log untuk disimpan atau pergi dari harian ke mingguan. Ini harus dibiarkan default kecuali Anda memiliki kebutuhan persyaratan log khusus untuk perangkat lunak seperti pemantauan fail2ban atau yang serupa.

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Pengaturan utama yang mungkin ingin Anda ubah adalah sebagai berikut:

  • Harian – Ini dapat diubah menjadi Mingguan, Bulanan. Ini harus disimpan setiap hari, jika tidak, akan sulit untuk menelusuri file log.
  • Putar 14 – Ini adalah berapa banyak log yang harus disimpan dan dihapus, jadi maksimal hanya ada 14 log, jika Anda hanya ingin menyimpan log selama 7 hari, ubah ini menjadi 7.

Dianjurkan untuk tidak menyentuh pengaturan lain kecuali Anda tahu apa yang Anda lakukan.

Cara Memperbarui Nginx

Nginx akan diperbarui secara default ketika versi baru masuk ke repositori. Sebelum memutakhirkan, selalu disarankan untuk mencadangkan direktori Nginx Anda atau, paling tidak, nginx.conf mengajukan. Anda dapat melakukannya dengan perintah berikut.

Cadangkan nginx.conf (Sangat Disarankan):

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Cadangkan seluruh folder Nginx Anda jika Anda mau:

sudo cp /etc/nginx/ /etc/nginx-bkup

Selanjutnya, jalankan perintah pembaruan standar.

sudo dnf upgrade --refresh

Jika upgrade tersedia, jalankan upgrade.

Anda mungkin dimintai ini selama peningkatan atau pemasangan, tetapi melakukan ini secara manual sebelumnya cukup penting. Untuk konfigurasi Nginx besar dari beberapa situs, mencadangkan ke sesuatu seperti Github atau Gitlab akan lebih bermanfaat.

Cara Menghapus (Mencopot) Nginx

Untuk menghapus Nginx jika sudah tidak digunakan lagi, dapat dilakukan dengan perintah berikut:

sudo dnf autoremove nginx

Perintah ini juga akan menghapus semua dependensi yang tidak digunakan yang menyertai penginstalan.

Ingat, jika Anda menginstal Nginx menggunakan EPEL dan ingin meresetnya untuk menginstal ulang versi aslinya, gunakan perintah berikut seperti yang dinyatakan sebelumnya.

sudo dnf modules reset nginx

AlmaLinux
  1. Cara Menginstal Nginx di Ubuntu 16.04

  2. Cara Menginstal Nginx di CentOS 7

  3. Cara Menginstal Nginx di Debian 9

  1. Cara Menginstal MongoDB di AlmaLinux 8

  2. Cara Menginstal Nginx di Debian 11

  3. Cara Menginstal Nginx di Fedora 35

  1. Bagaimana cara menginstal Lighttpd di AlmaLinux 8

  2. Cara Install PrestaShop di Almalinux 8

  3. Cara Menginstal Python 3.10 di AlmaLinux 8