Mengalihkan HTTP Ke HTTPS di nginx, Jika situs web anda telah memiliki ssl dan dapat diakses menggunakan https anda diharuskan mengalihkan semua http request ke https, dengan menggunakan ssl situs web kita akan menjadi lebih aman untuk pengguna, untuk mengalihkan http ke https dapat dilakukan dengan mudah di webserver nginx, kita hanya perlu menambahkan konfigurasi pada konfigurasi virtual host, berbeda dengan apache yang bisa dilakukan melalui .htaccess. untuk melakukan pengalihan dari http port 80 ke https port 443 kita hanya perlu menggunakan fungsi return 301.
berikut fungsi return yang akan digunakan
return 301 https://$server_name$request_uri;
sebelumnya anda juga diharuskan membuat konfigurasi untuk http dan https.
berikut contoh konfigurasi virtual host yang saya gunakan
# http server port 80 server { listen 80; server_name nothinux.id; return 301 https://nothinux.id$request_uri; } #https server port 443 server { listen 443 http2 ssl; server_name nothinux.id; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass php; } }
pada konfigurasi di atas http server me-listen port 80 dan mengatur server_name dan mengalihkan semua permintaan ke https
setelah anda menambahkan konfigurasi, jalankan ulang layanan nginx
user $ sudo systemctl restart nginx
untuk mengecek apakah permintaan http dialihkan atau tidaknya kita bisa menggunakan curl, untuk mengeceknya gunakan perintah dibawah
user $ curl -I nothinux.id
ganti nothinux.id dengan nama domain anda, Jika memunculkan output seperti berikut, berarti anda telah berhasil mengalihkan permintaan http ke https
nothinux ~ $ curl -i https://nothinux.id HTTP/1.1 301 Moved Permanently Server: nginx Date: Sun, 11 Mar 2018 14:33:32 GMT Content-Type: text/html Content-Length: 178 Connection: keep-alive Location: https://nothinux.id/
semoga bermanfaat