GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menginstal Nginx sebagai Reverse Proxy untuk Apache di Ubuntu 15.10

Nginx atau "engine-x " adalah server web berkinerja tinggi dengan penggunaan memori rendah, dibuat oleh Igor Sysoev pada tahun 2002. Nginx bukan hanya server web, tetapi dapat digunakan sebagai proxy terbalik untuk banyak protokol seperti HTTP, HTTPS, POP3, SMTP, dan IMAP dan juga sebagai penyeimbang beban dan cache HTTP.

Apache adalah perangkat lunak server web paling populer yang dikelola oleh komunitas open source di bawah Apache Software Foundation. Ada banyak modul tambahan yang tersedia untuk Apache seperti dukungan WebDav atau firewall aplikasi web seperti mod_security dan mendukung banyak bahasa pemrograman web seperti Perl, Python, PHP melalui modul asli atau dengan antarmuka cgi, fcgi dan FPM.

Dalam tutorial ini, saya akan menginstal dan mengkonfigurasi Nginx sebagai caching reverse proxy untuk web server Apache di Ubuntu 15.10, Nginx digunakan sebagai front end dan Apache sebagai back end. Nginx akan berjalan pada port 80 untuk merespon permintaan dari pengguna/browser, permintaan tersebut kemudian akan diteruskan ke server apache yang berjalan pada port 8080.

Langkah 1 - Instal Apache dan PHP

Masuk ke server ubuntu Anda dengan SSH dan menjadi pengguna root dengan menjalankan:

sudo su

Kemudian instal apache dengan perintah apt-get:

apt-get install apache2

Setelah apache terinstal, kita harus menginstal PHP sebagai modul apache untuk tutorial ini:

apt-get install php5 php5-mysql libapache2-mod-php5

Langkah 2 - Konfigurasi Apache dan PHP

Secara default, apache mendengarkan pada port 80. Kita harus mengonfigurasi apache agar berjalan pada port 8080 untuk pengaturan proxy kita karena port 80 akan digunakan oleh nginx nanti.

Jika Anda ingin mengubah port untuk server web apache, Anda harus mengedit file konfigurasi apache "/etc/apache2/ports.conf", lalu lanjutkan dengan konfigurasi virtual host di "/etc/apache2/sites-available/ " direktori.

Pertama ubah port untuk apache menjadi 8080 dengan mengedit file "ports.conf" dengan editor vim:

vim /etc/apache2/ports.conf

Di jalur 5 , ubah port 80 menjadi 8080.

Listen 8080

Simpan dan keluar.

Sekarang masuk ke direktori virtualhost dan edit file "000-default.conf" :

cd sites-available/
vim 000-default.conf

Pastikan konfigurasi Anda sama seperti di bawah ini:

<VirtualHost *:8080>

    ServerName www.reverse.com
    ServerAlias reverse.com

    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Simpan dan keluar.

Selanjutnya, uji konfigurasi dan restart apache:

apachectl configtest
systemctl restart apache2

Akhirnya kami memverifikasi bahwa apache dan php berfungsi. Buat file baru dengan nama "info.php" di direktori "/var/www/html/".

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Kunjungi situs Anda www.reverse.com:8080/info.php .

Hasilnya akan mirip dengan screenshot di atas.

Langkah 3 - Instal Nginx

Instal Nginx dengan perintah apt-get berikut:

apt-get install nginx

Langkah 4 - Konfigurasi Nginx

Setelah Nginx terinstal, konfigurasikan Nginx untuk bertindak sebagai proxy terbalik untuk server web apache yang berjalan pada port 8080.

Buka direktori konfigurasi nginx dan edit file "nginx.conf":

cd /etc/nginx/
vim nginx.conf

Aktifkan kompresi Gzip untuk Nginx dengan menghapus komentar pada baris gzip:

        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

yang paling penting adalah :

gzip aktif :untuk mengaktifkan kompresi gzip.

gzip_types :adalah daftar tipe MIME yang ingin Anda ubah kompresinya.

gzip_proksikan apa saja :mengaktifkan kompresi untuk permintaan proxy.

Tepat di bawah pengaturan gzip, tambahkan pengaturan cache proxy ini:

        # Proxy Cache Settings
        proxy_cache_path /var/cache levels=1:2 keys_zone=reverse_cache:60m inactive=90m max_size=1000m;

Direktori untuk cache proxy adalah /var/cache.

level adalah arahan yang memberi tahu Nginx bagaimana cache disimpan dalam sistem file.

zona_kunci hanyalah nama zona cache, Anda dapat memilihnya dengan bebas, tetapi jangan menambahkan karakter khusus atau spasi putih pada namanya. Saya akan menggunakan nama "reverse_cache " di sini.

Simpan dan Keluar.

Sekarang kita akan mengkonfigurasi virtualhost di direktori "/etc/nginx/sites-available".

Dalam tutorial ini, saya akan membuat file konfigurasi virtualhost baru bernama "reverse.conf". Baru saja masuk ke direktori dan buat file baru dengan vim:

cd /etc/nginx/sites-available
vim reverse.conf

Rekatkan konfigurasi di bawah ini:

server {
    listen 80;

    # Site Directory same in the apache virtualhost configuration
    root /var/www/html; 
    index index.php index.html index.htm;

    # Domain
    server_name www.reverse.com reverse.com;

    location / {
        try_files $uri $uri/ /index.php;
    }


    # Reverse Proxy and Proxy Cache Configuration
    location ~ \.php$ {
 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

        # Cache configuration
        proxy_cache reverse_cache;
        proxy_cache_valid 3s;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
        proxy_cache_key "$scheme$host$request_uri";
        add_header X-Cache $upstream_cache_status;
    }

    # Enable Cache the file 30 days
    location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
        proxy_cache_valid 200 120m;
        expires 30d;
        proxy_cache reverse_cache;
        access_log off;
    }

    # Disable Cache for the file type html, json
    location ~* .(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
    }

    location ~ /\.ht {
        deny all;
    }
}

Simpan dan keluar.

Kemudian aktifkan konfigurasi virtualhost baru:

ln -s /etc/nginx/sites-available/reverse.conf /etc/nginx/sites-enabled/

Terakhir kita akan menguji konfigurasi nginx dan restart nginx:

nginx -t
systemctl restart nginx

Nginx dikonfigurasi sebagai proxy terbalik sekarang. Anda dapat mengujinya dengan curl:

curl -I www.reverse.com

Kontrol Cache:tanpa cache berarti index.html dan semua file yang diakhiri dengan .html tidak akan di-cache.

Tes lain:

curl -I www.reverse.com/info.php

X-Cache:HIT berarti halaman tersebut dilayani oleh cache Nginx.

Langkah 5 - Konfigurasikan Logging

Pada langkah ini, saya akan mengonfigurasi apache untuk mencatat ip asli pengunjung, bukan IP lokal.

Harap instal modul apache "libapache2-mod-rpaf" dan edit file konfigurasi modul:

sudo apt-get install libapache2-mod-rpaf
cd /etc/apache2/mods-available/
vim rpaf.conf

Tambahkan IP server ke baris 10 . Server saya memiliki IP:192.168.1.108.

RPAFproxy_ips 127.0.0.1 192.168.1.108 ::1

Simpan dan keluar.

Sekarang restart apache :

systemctl restart apache2

Uji rpaf dengan melihat log akses apache dengan perintah tail:

tail -f /var/log/apache2/access.log

Itu saja.

Nginx diinstal sebagai proxy terbalik di depan server web Apache. Jika pengunjung meminta file php, permintaan tersebut akan diteruskan ke apache pada port 8080, dan Anda dapat melihat ip pengunjung yang sebenarnya pada file log apache.

Kesimpulan

Nginx adalah server web yang cepat dan populer dengan penggunaan memori rendah yang dapat bertindak sebagai server web dan proxy terbalik untuk protokol HTTP dan HTTPS. Proksi terbalik Nginx untuk apache adalah pengaturan yang menggunakan Nginx sebagai ujung depan, dan apache sebagai ujung belakang. Nginx menangani permintaan masuk dari browser dan meneruskannya ke backend apache. Dalam tutorial ini, kita telah menyiapkan konfigurasi untuk nginx sebagai cache http yang menyimpan permintaan file PHP dan gambar.


Ubuntu
  1. Cara menginstal Odoo 10 di Ubuntu 16.04 dengan Apache sebagai proxy terbalik

  2. Cara Menginstal Odoo 11 di Ubuntu 16.04 dengan Nginx sebagai Proxy Terbalik

  3. Cara Menginstal Odoo 10 di Ubuntu 16.04 dengan Nginx sebagai Proxy Terbalik

  1. Cara Mengatur Nginx sebagai Proxy Terbalik di Ubuntu 20.04

  2. Cara Menginstal Flectra di Ubuntu 20.04 dengan Nginx sebagai Proxy Terbalik

  3. Cara Menginstal Odoo 12 di Ubuntu 18.04 dengan Nginx sebagai Proxy Terbalik

  1. Cara Mengonfigurasi Nginx Reverse Proxy untuk Kibana

  2. Cara Menginstal Odoo 12 di Ubuntu 18.04 dengan Apache sebagai Proxy Terbalik

  3. Cara Menginstal Odoo 14 di Ubuntu 20.04 dengan Apache sebagai Proxy Terbalik