Install Nginx VPS Centos

Nginx merupakah Free VPS Server, Kali ini saya bahas VPS Tutorial cara install nginx pada centos. Saya sudah coba & berhasil membangun VPS. Tutorial ini saya tulis melengkapi tutorial install kloxo. Nginx (enggine x) juga merupakan aplikasi server yang sederhana dan ringan. Perbedaan dengan kloxo adalah dari interface-nya. Nginx tidak ada interface atau menu-menu server sebagaimana kloxo. Jadi semua perintah harus dijalankan melalui SSH.

Keunggulan Nginx adalah ringan dan tidak butuh space besar, resource memory juga tidak banyak, jadi dengan vps kecil dengan RAM 512 tidak masalah. Bagi pemula nginx mungkin merepotkan karena harus belajar SSH karena tidak ada interfacenya.

Berikut ini langkah-langkah yang harus dilakukan untuk install Nginx pada OS Centos 6.x yang saya ambil dari master saya  blog.fadjar.name

Panduan Install Nginx :

1. Menambah Repo EPEL & REMI

Bila perintah dibawah ini tidak bisa, silakan di update versi terbarunya. misal release-6-8 atau 6-9 bila nantinya bila sudah berubah:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

2. Menambah Repo Nginx

Jalankan perintah ini untuk membuat file nginx.repo :

nano /etc/yum.repos.d/nginx.repo
isi file nginx.repo dengan skrip dibawah ini untuk centos 6.x:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

3. Install Nginx Web Server

yum install nginx

/etc/init.d/nginx start
chkconfig --level 345 nginx on

Lanjutkan ke langkah nomer 4, Anda bisa membaca contoh modifikasi konfigurasi nginx.cont nanti .

Contoh lain konfigurasi nginx.conf modifikasi bisa anda lihat dibawah ini:

nano /etc/nginx/nginx.conf

[spoiler]
Contoh konfigurasinya sbb :

      
user                       nginx;
worker_processes           1;
worker_rlimit_nofile       5120;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  512;
}

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

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

sendfile        on;
server_names_hash_max_size 10240;
server_names_hash_bucket_size 1024;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout  5;
gzip on;
gzip_vary on;
gzip_disable "MSIE [1-6].";
gzip_proxied any;
gzip_http_version 1.1;
gzip_min_length  1000;
gzip_comp_level  6;
gzip_buffers  16 8k;
gzip_types    text/plain text/xml text/css application/x-javascript application/xml image/png image/x-icon image/gif image/jpeg application/xml+rss text/javascript application/atom+xml;
ignore_invalid_headers on;
client_header_timeout  3m;
client_body_timeout 3m;
send_timeout     3m;
reset_timedout_connection on;
connection_pool_size  256;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
client_max_body_size 200M; 
client_body_buffer_size 128k;
request_pool_size  32k;
output_buffers   4 32k;
postpone_output  1460;
proxy_temp_path  /tmp/nginx_proxy/;
client_body_in_file_only on;

   access_log  /var/log/nginx/access.log  main;
    include /etc/nginx/conf.d/*.conf;
}

[/spoiler]

4. Install MySQL Server

               
yum install mysql-server

/etc/init.d/mysqld start
chkconfig --level 345 mysqld on

5. Set mysql root password

Perintah ini digunakan untuk seting password pertama kali maupun bila suatu saat anda ingin merubah password roo mysql anda :

mysqladmin -u root password PASSWORD_BARU

Lanjutkan ke nomer 6. Contoh modifikasi lokasi database (my.conf) dapat anda baca nanti.
[spoiler]
Untuk Config MySQL (my.cnf), asumsi-nya untuk penyimpanan data database dirubah dari default /var/lib/mysql ke /data_db

[mysqld]
user=mysql

datadir=/data_db
socket=/var/lib/mysql/mysql.sock
bind-address = 127.0.0.1

query_cache_size = 32k
query_cache_limit = 1M
tmp_table_size = 8M
max_heap_table_size = 6M
thread_cache_size = 4
max_connections = 6
table_cache = 128

innodb_buffer_pool_size = 32M
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[/spoiler]

6. Install PHP

 
yum --enablerepo=remi install php-fpm php-gd php-mysql php-mbstring php-xml php-mcrypt php-pdo php-sqlite php-xml php-pear

/etc/init.d/php-fpm start
chkconfig --level 345 php-fpm on

7. Selesai
Anda bisa mengakses IP anda dan akan tampil “Welcome to nginx!”

Lalu Bagaimana cara menggunakan Nginx untuk menghostingkan website anda? :

– Buat .conf sesuai nama domain anda di /etc/nginx/conf.d misal sinarweb.com.conf
– Buat folder domain anda sesuai letak dalam konfigurasi misal di home
– Restar vps anda (shutdown -r now)

Contoh :
Sebenarnya Anda bisa meletakkan data website anda dimana saja misal di folder home, atau buat folder sendiri misal data_web. Letaknya di bawah / (slash), contoh :

 
cd /
mkdir data_web

Contoh konfigurasi dibawah ini dengan asumsi untuk documents root (htdocs) diletakkan di /data_web/nama_domain. Contoh untuk domain tutorial.sinarweb.com yang menggunakan CMS WordPress. Anda tidak perlu ubah macem2, cukup ganti nama domainya.

Ingat letak file ini ada di /etc/nginx/conf.d dengan nama file sinarweb.com.conf lihat spoiler :
[spoiler]

 
server {
	listen       0.0.0.0:80;
	server_name  tutorial.sinarweb.com www.tutorial.sinarweb.com;
	access_log  /var/log/nginx/tutorial.sinarweb.com.access.log  main;

location / {
	root   /data_web/tutorial.sinarweb.com;
	index  index.html index.htm index.php;

# Script for permalink WP
	if (!-e $request_filename) {
	rewrite ^/(.*)$ /?q=$1 last;
	}
}

# redirect server error pages to the static page /50x.html
	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
	root   /data_web/tutorial.sinarweb.com;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ .php$ {
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /data_web/blog.fadjar.name$fastcgi_script_name;
	include        fastcgi_params;
	}
}

[/spoiler]

Keterangan :
– Anda tinggal mengganti nama domain blog.fadjar.name menjadi domainmusendiri.com
– Letakkan filde .conf pada: /etc/nginx/conf.d/ nama filenya domainmu.com.conf
– pemindahan data pakai perintah wget urlnya, misal # wget sinarweb.com/data.zip
– esport database, misal # mysqldump -p -u ekerja ekerja_toko > toko.sql
– import database via ssh, misal # mysql -u ekerja -p -h localhost ekerja_toko < toko.sql
– Default databse hasil importam di /var/lib/mysql atau seusuai modifikasi, cara modifikasinya liat spoiler no 5.
– Lihat tutorial lanjutanya : cara menggunakan vps

Kasus :
Semua setingan sudah benar, domain juga sudah diarahkan ke Ip dan sudah resolved tapi ketika diakses hanya muncul tulisan welcome nginx, file tidak bisa diakses (404 not found). Silusinya cuma di restart vps anda dengan perintah : # shutdown -r now

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top