Dalam panduan ini, kita akan mengeksplorasi cara menggunakan nginx di Ubuntu 20.04, yaitu Menginstal nginx dan mengkonfigurasi nginx untuk melayani situs virtual.
Menginstal Nginx
perbarui indeks paket lokal kami sehingga kami memiliki akses ke daftar paket terbaru
sudo apt update
Instal nginx
sudo apt install nginx
Perbarui firewall
Daftar aplikasi ufw yang tersedia:
sudo ufw app list
Contoh keluaran:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Profil Nginx yang terdaftar:
Nginx Full
– Baik http – 80 dan https – 443Nginx HTTP
– hanya lalu lintas http 80Nginx HTTPS
– Hanya lalu lintas https 443 – Lalu lintas terenkripsi TLS/SSL
Aktifkan profil yang Anda inginkan – baik http dan https dalam kasus kami:
sudo ufw allow 'Nginx Full'
Verifikasi perubahan
sudo ufw status
Perintah di atas akan menampilkan lalu lintas mana yang diizinkan.
Mengonfigurasi nginx
Periksa versi yang diinstal
sudo apt list --installed | grep nginx
Periksa layanan systemd
sudo systemctl status nginx
Anda akan melihat output ini menunjukkan bahwa nginx sedang berjalan
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-07-30 14:07:33 UTC; 2min 42s ago
Docs: man:nginx(8)
Main PID: 4684 (nginx)
Tasks: 5 (limit: 9257)
CGroup: /system.slice/nginx.service
├─4684 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─4685 nginx: worker process
├─4686 nginx: worker process
├─4687 nginx: worker process
└─4688 nginx: worker process
Jul 30 14:07:33 frhb64566ds systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 30 14:07:33 frhb64566ds systemd[1]: Started A high performance web server and a reverse proxy server.
Untuk memastikan bahwa layanan nginx selalu berjalan bahkan setelah reboot, gunakan perintah systemnd ini untuk mengaktifkan:
sudo systemctl enable nginx
Anda dapat menggunakan perintah systemd lain ini untuk mengelola nginx:
# To start the service
sudo systemctl start nginx
# To restart the service
sudo systemctl restart nginx
# To reload the service config
sudo systemctl reload nginx
# To stop the service config
sudo systemctl restart nginx
# To disable the service config
sudo systemctl restart nginx
Untuk mengonfirmasi bahwa nginx benar-benar berjalan dan dapat dijangkau, gunakan perintah ini:
curl http://server_ip/
di mana server_ip
adalah ip server Anda. Jika karena alasan apa pun Anda tidak mengetahui ip publik server Anda, gunakan ini untuk memeriksa:
curl -4 icanhazip.com
Kemudian:
curl http://178.170.10.54/
Anda harus mendapatkan halaman nginx default.
Menyajikan nginx halaman statis sederhana
Mari kita lihat contoh untuk menyajikan halaman statis dengan nginx. Halaman statis adalah html dan css yang tidak memerlukan rendering sisi server. Kita akan menggunakan contoh domain your.domain.com
dalam kasus kami.
Langkah-langkah:
-
Buat direktori untuk menyimpan konten statis kami (kami akan menggunakan
/var/www/your.domain.com
)sudo mkdir -p /var/www/your.domain.com
-
Pastikan direktori yang dibuat dapat diakses oleh pengguna saat ini
sudo chown -R ${USER}:${USER} /var/www/your.domain.com sudo chmod -R 755 /var/www/your.domain.com
-
Tambahkan file contoh ke direktori (
/var/www/your.domain.com/index.html
)cat > /var/www/your.domain.com/index.html <<EOF <html> <head> <title>Hola from your.domain.com!</title> </head> <body> <h1>Hey!</h1> <p>Our site <i>your.domain.com</i> is working as expected.</p> </body> </html> EOF
-
Buat konfigurasi nginx di direktori
/etc/nginx/conf.d
di mana nginx mencari konfigurasi untuk disertakan saat melayani. Kami akan membuat file/etc/nginx/conf.d/your.domain.com.conf
dengan konten yang dibutuhkan.
Gunakan perintah ini:
cat > /etc/nginx/conf.d/your.domain.com.conf <<EOF
server {
listen 80;
server_name your.domain.com;
root /var/www/your.domain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
EOF
-
Uji untuk memastikan bahwa tidak ada kesalahan sintaks di salah satu file nginx
sudo nginx -t
-
Jika tidak ada kesalahan, mulai ulang nginx untuk memuat ulang konfigurasi
sudo systemctl restart nginx
-
Untuk memastikan bahwa domain Anda dapat mencapai server, edit konfigurasi DNS Anda untuk memastikan bahwa catatan A situs
your.domain.com
Anda menunjuk ke IP server.
Situs Anda sekarang harus aktif dan berjalan. Konfirmasikan dengan mengunjungi http://domain.anda.com
File dan Direktori Nginx Penting di Nginx
-
/var/www/html
:Ini adalah direktori konten web. Ini berisi konten halaman default dalam fileindex.nginx-debian.html
. Halaman itu dirender ketika tidak ada host server spesifik yang ditentukan. -
/etc/nginx
:Ini berisi semua file konfigurasi nginx. -
/etc/nginx/nginx.conf
:Ini adalah file konfigurasi nginx global utama -
/etc/nginx/sites-available/
:Direktori tempat blok server per situs dapat disimpan. Nginx tidak akan menggunakan file konfigurasi yang ditemukan di direktori ini kecuali file tersebut ditautkan kesites-enabled
direktori. Biasanya, semua konfigurasi blok server dilakukan di direktori ini, dan kemudian diaktifkan dengan menautkan ke direktori lain. -
/etc/nginx/sites-enabled/
:Direktori tempat penyimpanan blok server per situs yang diaktifkan. Biasanya, ini dibuat dengan menautkan ke file konfigurasi yang ditemukan di direktori yang tersedia di situs. -
/etc/nginx/snippets
:Direktori ini berisi fragmen konfigurasi yang dapat dimasukkan di tempat lain dalam konfigurasi Nginx. Segmen konfigurasi yang berpotensi berulang adalah kandidat yang baik untuk pemfaktoran ulang menjadi cuplikan. -
/var/log/nginx/access.log
:Setiap permintaan ke server web Anda dicatat dalam file log ini kecuali jika Nginx dikonfigurasi untuk melakukan sebaliknya. -
/var/log/nginx/error.log
:Setiap kesalahan Nginx akan dicatat di log ini.