<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Artikel Magnet &#187; Nginx</title>
	<atom:link href="http://artikel.magnet-id.com/tag/nginx/feed/" rel="self" type="application/rss+xml" />
	<link>http://artikel.magnet-id.com</link>
	<description>Kumpulan Panduan, Tutorial dan Informasi Magnet</description>
	<lastBuildDate>Fri, 02 Sep 2011 00:30:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Implementasi Nginx dengan Apache Backend</title>
		<link>http://artikel.magnet-id.com/pengelolaan-linux/implementasi-nginx-dengan-apache-backend/</link>
		<comments>http://artikel.magnet-id.com/pengelolaan-linux/implementasi-nginx-dengan-apache-backend/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 00:30:17 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Pengelolaan Server Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=1573</guid>
		<description><![CDATA[Utilisasi Web Server Nginx yang sangat tangguh mengatasi konten statik seperti file gambar dapat dilakukan dengan tetap menggunaan Apache sebagai backend yang menhandle semua request lain. Dengan demikian kita tetap bisa menggunakan rewrite dari Apache tanpa harus melakukan modifikasi di file konfigurasi Nginx.]]></description>
			<content:encoded><![CDATA[<p>Utilisasi Web Server Nginx yang sangat tangguh mengatasi konten statik seperti file gambar dapat dilakukan dengan tetap menggunaan Apache sebagai backend yang menhandle semua request lain. Dengan demikian kita tetap bisa menggunakan rewrite dari Apache tanpa harus melakukan modifikasi di file konfigurasi Nginx.</p>
<p><span id="more-1573"></span>Artikel ini akan memberikan panduan untuk melakukan implementasi Nginx Frontend dengan Apache Backend, pada tahapan ini diasumsikan bahwa anda telah dapat melakukan instalasi dan konfigurasi awal baik untuk Nginx maupun untuk Apache.</p>
<p>Artikel ini dilakukan pada server CentOS 64 bit, apabila anda menggunakan server dengan distribusi yang berbeda, harap diperhatikan perbedaan path dan perintah.</p>
<h2>Setup</h2>
<p>Nginx akan melayani request http terhadap domain terkait, dengan demikian entry pada Name Server diarahkan ke IP Address yang disetup di Virtual Host Nginx. Pada contoh kasus di artikel ini, konfigurasi virtual host nginx akan menggunakan ip publik dengan port 80, sementara apache akan menggunakan ip localhost pada port 8080.</p>
<p>Untuk beberapa kepentingan seperti log apache yang membutuhkan IP Address pengunjung dan bukan IP Address Nginx, kita akan menggunakan modul Apache rpaf yang informasi lebih lanjutnya dapat anda akses mealalui situs <a  href="http://stderr.net/apache/rpaf/" target="_blank">http://stderr.net/apache/rpaf/</a>.</p>
<p>Lakukan instalasi Modul Apache rpaf;</p>
<pre class="brush: bash">yum install -y httpd-devel.x86_64
cd /usr/src/
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
/usr/sbin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c</pre>
<p>Pastikan bahwa mod_rpaf-2.0.so sudah ada di dalam direktori /etc/httpd/modules/ kemudian edit file httpd.conf agar meload mod_rpaf ketika httpd dinyalakan;</p>
<pre class="brush: bash">vi /etc/httpd/conf/httpd.conf
# Tambahkan baris berikut
LoadModule rpaf_module modules/mod_rpaf-2.0.so</pre>
<p>Apache harus direstart untuk mengaktifkan perubahan terkait, /etc/init.d/httpd restart</p>
<h2>Konfigurasi Virtual Host Nginx</h2>
<p>Buat direktif server {} di dalam file konfigurasi Nginx, dalam hal ini adalah /usr/local/nginx/conf/nginx.conf, posisi konfigurasi virtual host Nginx akan tergantung kepada konfigurasi awal yang anda miliki.</p>
<pre>    server {
        listen       ip.publik.anda:80;
        server_name  domain.com www.domain.com;

        access_log  logs/domain.com-nginx-access.log  main;

        location / {
            proxy_pass         http://127.0.0.1:80/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }

        # Static files location
        location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
            root   /path/ke/home/direktori/httpd/domain.com;
        }
    }</pre>
<p>Pada konfigurasi di atas, Nginx hanya akan melayani request terhadap file statik yang ekstensionnya disebutkan, request di luar itu akan diarahkan ke Apache yang berjalan di 127.0.0.1 Port 8080 melalui direktif proxy_pass.</p>
<p>Agar direktori logs nginx sama dengan direktori logs apache, silahkan hapus direktori logs di dalam /usr/local/nginx, dan buat symlink logs ke /var/log/httpd.</p>
<pre class="brush: bash">cd /usr/local/nginx/
rm -rf logs
ln -s /var/log/httpd logs</pre>
<h2>Konfigurasi Virtual Host Apache</h2>
<p>Virtual host apache tetap harus disetup, namun dengan menggunakan port 8080 dan IP Address 127.0.0.1, pastikan bahwa Apache hanya berjalan di port 8080 sehingga tidak bentrok dengan port 80 yang digunakan oleh Nginx.</p>
<pre class="brush: bash">vim /etc/httpd/conf/httpd.conf
Listen 127.0.0.1:8080</pre>
<p>Kemudian masukkan direktif virtual host untuk domain.com di file yang sama;</p>
<pre>NameVirtualHost 127.0.0.1:8080
&lt;VirtualHost 127.0.0.1:8080&gt;
 ServerAdmin email@anda.com
 ServerName domain.com
 ServerAlias www.domain.com
 DocumentRoot /var/www/html/domain.com
 RPAFenable On
 RPAFsethostname On
 RPAFproxy_ips 127.0.0.1
 RPAFheader X-Real-IP
 &lt;Directory /&gt;
 Options FollowSymLinks
 AllowOverride None
 &lt;/Directory&gt;
 &lt;Directory /var/www/html/domain.com&gt;
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 &lt;/Directory&gt;
LogLevel warn
   ErrorLog logs/domain.com-error.log
   CustomLog logs/domain.com-access.log combined
 &lt;/VirtualHost&gt;</pre>
<p>&nbsp;</p>
<p>Pada contoh di atas konfigurasi RPAF berada di dalam direktif virtual host, apabila direktif ini tidak ada maka yang tercatat di log Apache adaah IP Address server anda sendiri, karena requestnya berasal dari Nginx (proxy) dan bukan dari user langsung.</p>
<p>Untuk impelementasi setup silahkan direstart service Nginx dan Apache.</p>
<h2>Referensi</h2>
<ul>
<li>Mod rpaf untuk Apache <a  href="http://stderr.net/apache/rpaf/" target="_blank">http://stderr.net/apache/rpaf/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/pengelolaan-linux/implementasi-nginx-dengan-apache-backend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konfigurasi PHP-FPM Untuk Multiple User</title>
		<link>http://artikel.magnet-id.com/aplikasi-linux/konfigurasi-php-fpm-untuk-multiple-user-2/</link>
		<comments>http://artikel.magnet-id.com/aplikasi-linux/konfigurasi-php-fpm-untuk-multiple-user-2/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 09:13:01 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Aplikasi Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Konfigurasi]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=1486</guid>
		<description><![CDATA[Jika anda menggunakan Nginx dan PHP nya menggunakan php-fpm, maka secara default PHP akan berjalan hanya dengan 1 user, hal ini mungkin sudah cukup bagi pengguna yang hanya menggunakan server nya untuk dirinya sendiri. Namun bagaimanakah caranya agar domain / subdomain lain yang berbeda home directory sekaligus berbeda pemilik file, berjalan dengan user berbeda (seperti [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Jika anda menggunakan <a  title="Nginx" href="http://wiki.nginx.org/Main" target="_blank">Nginx</a> dan PHP nya menggunakan <a  title="PHP FPM" href="http://php-fpm.org/" target="_blank">php-fpm</a>, maka secara  default PHP akan berjalan hanya dengan 1 user, hal ini mungkin sudah  cukup bagi pengguna yang hanya menggunakan server nya untuk dirinya  sendiri. <span id="more-1486"></span>Namun bagaimanakah caranya agar domain / subdomain lain yang  berbeda home directory sekaligus berbeda pemilik file, berjalan dengan  user berbeda (seperti Apache yang berpasangan dengan suphp nya)?</p>
<p style="text-align: justify;">Berikut ini akan dijelaskan sedikit modifikasi / tambahan pada   konfigurasi php-fpm dan juga virtualhost pada Nginx. Sebelum  melanjutkan panduan ini, setidaknya di server anda sudah ter-install Nginx dan php-fpm, jika belum silahkan ikuti dahulu panduan berikut  untuk meng-install Nginx sekaligus php-fpm nya <a href="../aplikasi-linux/nginx-mysql-php-di-centos-52-64-bit/" target="_blank">http://artikel.magnet-id.com/aplikasi-linux/nginx-mysql-php-di-centos-52-64-bit/</a></p>
<p>- Versi nginx pada saat panduan ini dibuat adalah: 0.7.61<br />
- Versi  php-fpm pada saat panduan ini dibuat adalah: versi untuk php 5.2.10<br />
- Operating System: Centos 5.2<br />
(mungkin ada sedikit perbedaan pada  php-fpm, nginx atau operating system selain diatas)</p>
<p style="text-align: justify;">
<p><strong>Konfigurasi php-fpm</strong></p>
<p>- Pertama buka file konfigurasi  php-fpm, (mungkin bisa berbeda path, tergantung dengan konfigurasi anda)</p>
<pre class="brush: bash">vi /usr/local/etc/php-fpm.conf</pre>
<p style="text-align: justify;">
<p>- Cari tag:  <strong>&lt;section name=&#8221;pool&#8221;&gt;</strong> yang ada setelah tag: <strong>&lt;workers&gt;</strong></p>
<p style="text-align: justify;">
<p>- Copy tag: <strong>&lt;section name=&#8221;pool&#8221;&gt;</strong> sampai <strong>&lt;/section&gt;</strong></p>
<p style="text-align: justify;">
<p>- Paste sepasang tag tersebut berikut isinya sebelum atau diatas tag:  <strong>&lt;/workers&gt;</strong>, kira-kira seperti ini:</p>
<p><em>sebelum:</em></p>
<pre>&lt;workers&gt;
&lt;section name="pool"&gt;
... ...
&lt;/section&gt;
&lt;/workers&gt;</pre>
<p><em>sesudah:</em></p>
<pre>&lt;workers&gt;
&lt;section name="pool"&gt;
... ...
&lt;/section&gt;
&lt;section name="pool"&gt;
... ...
&lt;/section&gt;
&lt;/workers&gt;</pre>
<p style="text-align: justify;">
<p>- Agar konfigurasi tidak bentrok, pastikan nama pool, port, dan user  serta grup tidak ada yang sama, seperti ini:</p>
<pre>&lt;workers&gt;

&lt;section name="pool"&gt;
&lt;value name="name"&gt;nama-domain-0.tld&lt;/value&gt;
&lt;value name="listen_address"&gt;127.0.0.1:9000&lt;/value&gt;

... ...

&lt;value name="user"&gt;user0&lt;/value&gt;
&lt;value name="group"&gt;user0&lt;/value&gt;

... ...

&lt;/section&gt;

&lt;section name="pool"&gt;
&lt;value name="name"&gt;nama-domain-1.tld&lt;/value&gt;
&lt;value name="listen_address"&gt;127.0.0.1:9001&lt;/value&gt;

... ...

&lt;value name="user"&gt;user1&lt;/value&gt;
&lt;value name="group"&gt;user1&lt;/value&gt;

... ...

&lt;/section&gt;

&lt;/workers&gt;</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">- Sesuaikan juga value &#8220;max_children&#8221; yang ada di dalam tag &lt;value  name=&#8221;pm&#8221;&gt; dengan jumlah yang diinginkan, value disini menentukan  jumlah process yg dijalankan atas nama user terkait, dengan catatan  value &#8220;style&#8221; harus &#8220;static&#8221;.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">- Jika value &#8220;style&#8221; menggunakan  &#8220;apache-like&#8221; maka abaikan &#8220;max_children&#8221; dan silahkan sesuaikan jumlah  pada value &#8220;StartServers&#8221;, &#8220;MinSpareServers&#8221; dan &#8220;MaxSpareServers&#8221; yang  ada di dalam &lt;value name=&#8221;apache_like&#8221;&gt; (biasanya pengguna apache  sudah paham mengenai konfigurasi tersebut)</p>
<p style="text-align: justify;">
<p style="text-align: justify;">- Setelah selesai save  konfigurasi tersebut dan restart php-fpm anda</p>
<pre class="brush: bash">/etc/init.d/php-fpm  restart</pre>
</p>
<p style="text-align: justify;">
<p style="text-align: justify;">- Silahkan dilihat process php-fpm nya apakah user yang  diinginkan sudah berjalan sebagaimana mestinya</p>
<pre class="brush: bash">ps aux | grep php-fpm</pre>
</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">Jika pada restart php-fpm sudah berhasil tanpa error dan user yang  diinginkan sudah berjalan, maka akan dilanjutkan dengan konfigurasi pada  virtualhost nginx.</p>
<p style="text-align: justify;">
<p><strong>Konfigurasi virtualhost nginx</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">- Pada masing-masing virtualhost, silahkan diubah port php-fpm dengan  port yang sudah didefinisikan pada konfigurasi php-fpm. Seperti ini:</p>
<p><em>virtualhost untuk nama-domain-0.tld:</em></p>
<pre>... ...

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}

... ...</pre>
<p><em>virtualhost  untuk nama-domain-1.tld:</em></p>
<pre>... ...

location ~ .php$ {
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}

... ...</pre>
<p style="text-align: justify;">
<p>-  Setelah itu restart nginx anda</p>
<pre class="brush: bash">/etc/init.d/nginx restart</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">- Jika  tidak ada error pada saat restart nginx, maka php pada  nama-domain-0.tld akan berjalan untuk user0 dan php pada  nama-domain-1.tld akan berjalan untuk user1, silahkan diperiksa melalui  phpinfo() masing-masing.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Selesai sudah sedikit contoh  konfigurasi php-fpm dengan dengan multiple user. Silahkan ditambahkan lagi  untuk user lainnya dengan jumlah user yang anda inginkan.</p>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/aplikasi-linux/konfigurasi-php-fpm-untuk-multiple-user-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django, Nginx dan Apache mod_wsgi di Ubuntu</title>
		<link>http://artikel.magnet-id.com/aplikasi-linux/django-nginx-dan-apache-mod_wsgi-di-ubuntu/</link>
		<comments>http://artikel.magnet-id.com/aplikasi-linux/django-nginx-dan-apache-mod_wsgi-di-ubuntu/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 17:19:36 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Aplikasi Linux]]></category>
		<category><![CDATA[Programming dan Framework]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=902</guid>
		<description><![CDATA[Artikel ini akan memberikan panduan untuk menjalankan aplikasi Django anda dengan menggunakan front end Nginx Web Server untuk file statik dengan upstream Apache dan mod_wsgi untuk menjalankan script python pada mesin Ubuntu 9.04 64 bit yang dapat anda miliki melalui Layanan VPS Magnet Hosting.]]></description>
			<content:encoded><![CDATA[<p>Artikel ini akan memberikan panduan untuk menjalankan aplikasi Django anda dengan menggunakan front end Nginx Web Server untuk file statik dengan upstream Apache dan mod_wsgi untuk menjalankan script python pada mesin Ubuntu 9.04 64 bit yang dapat anda miliki melalui Layanan VPS Magnet Hosting.</p>
<p><span id="more-902"></span></p>
<p><strong>Mengapa Nginx Web Server?</strong></p>
<p>Nginx Web Server sangat powerful dan jauh lebih hemat RAM dibandingkan Apache ketika melayani file statik seperti file gambar atau pun html, oleh sebab itu Nginx menjadi preferensi bagi website / aplikasi dengan traffic / load tinggi, baik berjalan sendiri maupun dipadukan dengan web server lain seperti Apache.</p>
<p><strong>Mengapa Apache mod_wsgi?</strong></p>
<p>Mod_wsgi memiliki overhead sampai dengan 50% lebih ringan dibandingkan mod_python, dan jauh lebih ringan dibandingkan CGI untuk menjalankan script python pada Web Server Apache. Dokumentasi teknis mengenai benchmark ini dapat dipelajari lebih lanjut di <a  href="http://code.google.com/p/modwsgi/wiki/PerformanceEstimates" target="_blank">http://code.google.com/p/modwsgi/wiki/PerformanceEstimates</a>. Atau melalui link berikut untuk perbandingan di aplikasi yang sudah berjalan <a  href="http://collingrady.wordpress.com/2009/01/06/mod_python-versus-mod_wsgi/" target="_blank">http://collingrady.wordpress.com/2009/01/06/mod_python-versus-mod_wsgi/</a>.</p>
<p><strong>Mengapa Ubuntu?</strong></p>
<p>Ubuntu apabila dibandingkan dengan distribusi linux lainnya memiliki kompilasi paket yang lebih maju, sebagai ilustrasi, versi python pada Ubuntu 9.04 adalah Python 2.6.2, sementara pada CentOS 5.3 memiliki versi Python 2.4.3. Hal ini merupakan salah satu alasan untuk menggunakan Ubuntu apabila anda membutuhkan dukungan Python dengan versi lebih baru. Karena pada semua distribusi Linux Python merupakan core software yang sangat sulit (atau tidak bisa) untuk diupgrade secara manual. Namun demikian, Django mendukung Python 2.3.x (dukungan terhadap Python 2.3.x akan ditarik oleh Django dalam waktu dekat) sehingga tetap tidak menjadi masalah apabila anda menggunakan CentOS untuk mendeploy aplikasi anda.</p>
<p><strong>Update Ubuntu</strong></p>
<p>Masukkan repository universe pada sources.list anda.</p>
<pre class="brush: bash">sudo nano /etc/apt/sources.list</pre>
<p>Sesuaikan dengan isi file anda, seperti contoh berikut;</p>
<pre>deb http://ubuntu.indika.net.id jaunty main universe
deb http://security.ubuntu.com/ubuntu jaunty-security main universe</pre>
<p>Update Ubuntu</p>
<pre class="brush: bash">sudo aptitude update</pre>
<p><strong>Instalasi Build Essential</strong></p>
<pre class="brush: bash">sudo aptitude install build-essential</pre>
<p><strong>Instalasi Apache dan mod_wsgi</strong></p>
<pre class="brush: bash">sudo aptitude install apache2 apache2.2-common apache2-mpm-worker apache2-threaded-dev libapache2-mod-wsgi python-dev</pre>
<p><strong>Konfigurasi Apache</strong></p>
<p>Sesuaikan direktif timeout dan matikan KeepAlive</p>
<pre class="brush: bash">sudo nano /etc/apache2/apache2.conf</pre>
<pre>Timeout 60
KeepAlive Off</pre>
<p>Modifikasi konfigurasi security di conf.d (opsional)</p>
<pre class="brush: bash">sudo nano /etc/apache2/conf.d/security</pre>
<pre>ServerTokens Prod
ServerSignature Off
TraceEnable Off</pre>
<p>Restart Apache</p>
<pre class="brush: bash">sudo apache2ctl graceful</pre>
<p>Hapus default site bawaan dari instalasi awal</p>
<pre class="brush: bash">sudo a2dissite 000-default</pre>
<p>Ubah port listening dan port virtual host Apache menjadi 8080, Nginx yang akan melayani port 80, sementara request untuk script Python akan di proxy ke port 8080 (Apache);</p>
<pre class="brush: bash">sudo nano /etc/apache2/ports.conf</pre>
<pre>NameVirtualHost *:8080
Listen 8080</pre>
<p>Restart Apache</p>
<pre class="brush: bash">sudo apache2ctl graceful</pre>
<p><strong>Instalasi Nginx</strong></p>
<pre class="brush: bash">sudo aptitude install nginx</pre>
<p>Instalasi dengan menggunakan aptitude akan membuat file konfigurasi berada di /etc/nginx. Pada Ubuntu 9.04, versi Nginx yang digunakan adalah 0.6.35, sementara versi stable terbaru pada saat tulisan ini dibuat adalah 0.7.61, anda bisa melakukan kompilasi sendiri apabila anda membutuhkan Nginx dengan versi yang lebih baru.</p>
<p>Start Nginx</p>
<pre class="brush: bash">sudo /etc/init.d/nginx start</pre>
<p>Hapus konfigurasi default virtual host dari Nginx</p>
<pre class="brush: bash">sudo rm -f /etc/nginx/sites-enabled/default</pre>
<p>Layout Nginx hasil instalasi ini mirip dengan Apache, untuk Virtual Host anda akan memiliki dua direktori yaitu sites-available dan sites-enabled, di dalam sites-enabled (seperti halnya Apache di Ubuntu) berisi symbolic link ke file yang berada di dalam sites-available. File konfigurasi virtual host sites-enabled ini yang nantinya akan ikut dipanggil ketika Nginx dijalankan.</p>
<p>Sesuaikan konfigurasi utama Nginx</p>
<pre class="brush: bash">sudo nano /etc/nginx/nginx.conf</pre>
<p>di root konfigurasi</p>
<pre>worker_processes  4;     &lt;--- sesuaikan dengan jumlah core di dalam server anda</pre>
<p>di dalam http {}</p>
<pre>keepalive_timeout  2;
tcp_nopush on;

gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;</pre>
<p>Buat file proxy.conf yang akan dipanggil oleh konfigurasi Virtual Host Nginx.</p>
<pre class="brush: bash">sudo nano /etc/nginx/proxy.conf</pre>
<pre>proxy_redirect              off;
proxy_set_header            Host $host;
proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size        10m;
client_body_buffer_size     128k;
proxy_connect_timeout       90;
proxy_send_timeout          90;
proxy_read_timeout          90;
proxy_buffer_size           4k;
proxy_buffers               4 32k;
proxy_busy_buffers_size     64k;
proxy_temp_file_write_size  64k;</pre>
<p>Restart Nginx</p>
<pre class="brush: bash">sudo /etc/init.d/nginx restart</pre>
<p><strong>Instalasi Subversion</strong></p>
<p>Kita membutuhkan subversion karena Django yang akan kita gunakan adalah versi SVN.</p>
<pre class="brush: bash">sudo aptitude install subversion</pre>
<p><strong>Instalasi Django</strong></p>
<p>Pada Python 2.6 di Ubuntu, modul tambahan tidak lagi di letakkan di sites-package, melainkan di dist-packages, hal ini mungkin akan membingungkan bagi anda yang terbiasa menggunakan Python ver 2.5 ke bawah.</p>
<pre class="brush: bash">cd /usr/lib/python2.6/dist-packages
sudo svn co http://code.djangoproject.com/svn/django/tags/releases/1.0.2/django django
sudo ln -s /usr/lib/python2.6/dist-packages/django/bin/django-admin.py /usr/local/bin/django-admin.py</pre>
<p><strong>Menyiapkan Virtual Host</strong></p>
<p>Layout direktori berikut dapat disesuaikan dengan selera kita, pada intinya kita akan menyiapkan direktori untuk Nginx (Media Files), Apache (handler WSGI) dan untuk aplikasi Django kita yang dibuat melalui django-admin.py startproject &lt;namaproject&gt;. Sesuaikan semua keterangan di dalam &lt;keterangan&gt; dengan kondisi anda.</p>
<pre>cd ~
mkdir /home/&lt;username&gt;/public_html
mkdir -p /home/&lt;username&gt;/public_html/&lt;domain name&gt;
mkdir -p /home/&lt;username&gt;/public_html/&lt;domain name&gt;/private
mkdir -p /home/&lt;username&gt;/public_html/&lt;domain name&gt;/logs</pre>
<p>Aplikasi Django kita akan berada di dalam /home/&lt;username&gt;/public_html/&lt;domain name&gt;</p>
<p>Berikan permission kepada web server (baik Nginx maupun Apache akan berjalan sebagai user www-data), tambahkan username kita atau yang akan digunakan ke dalam group web server / www-data</p>
<pre>sudo usermod -a -G www-data &lt;username&gt;</pre>
<p>Ubah group ownership dari layout direktori dan berikan permission yang sesuai seperti contoh berikut;</p>
<pre>sudo chgrp -R www-data /home/&lt;username&gt;/public_html
sudo chmod -R 2750 /home/&lt;username&gt;/public_html
sudo chmod -R 2770 /home/&lt;username&gt;/public_html/&lt;domain name&gt;/private</pre>
<p><strong>Instalasi Aplikasi Django</strong></p>
<p>Start Django project, atau pindahkan file anda apabila sudah ada</p>
<pre>cd /home/&lt;username&gt;/public_html/&lt;domain name&gt;
django-admin.py startproject &lt;django_project_name&gt;</pre>
<p>Buat file .wsgi yang akan dipanggil oleh Apache mod_wsgi</p>
<pre>mkdir -p /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/apache
cd /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/apache
sudo nano &lt;django project name&gt;.wsgi</pre>
<pre>import os, sys

apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace) 

sys.path.append('/usr/lib/python2.6/dist-packages/django/')
sys.path.append('/home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;')

os.environ['DJANGO_SETTINGS_MODULE'] = '&lt;django project name&gt;.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()</pre>
<p>Buat symbolic link untuk file media interface admin</p>
<pre>sudo ln -s /usr/lib/python2.6/dist-packages/django/contrib/admin/media /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/media/admin]</pre>
<p>Sesuaikan settings.py untuk Django Project anda</p>
<pre class="brush: bash">sudo nano settings.py</pre>
<pre>ADMIN_MEDIA_PREFIX = '/media/admin/'
.
.
.
MIDDLEWARE_CLASSES = (
'django.middleware.http.SetRemoteAddrFromForwardedFor',
)</pre>
<p><strong>Virtual Host Nginx</strong></p>
<pre>sudo nano /etc/nginx/sites-available/&lt;namadomainanda.com&gt;</pre>
<pre>upstream backend {
 server 127.0.0.1:8080;
}

server {
 listen   &lt;ip.address.anda&gt;:80;
 server_name www.&lt;domain name&gt; &lt;domain name&gt;;

 access_log /home/&lt;username&gt;/public_html/&lt;domain name&gt;/logs/nginx_access.log;
 error_log /home/&lt;username&gt;/public_html/&lt;domain name&gt;/logs/nginx_error.log;

 location / {
 proxy_pass  http://backend;
 include     /etc/nginx/proxy.conf;
 }

 location  /media/ {
 root /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/;
 }
}</pre>
<p>Aktifkan konfigurasi Virtual Host tersebut dan restart Nginx</p>
<pre>sudo ln -s /etc/nginx/sites-available/&lt;domain name&gt; /etc/nginx/sites-enabled/&lt;domain name&gt;
sudo /etc/init.d/nginx restart</pre>
<p><strong>Virtual Host Apache</strong></p>
<pre>sudo nano /etc/apache2/sites-available/&lt;domain name&gt;</pre>
<pre>&lt;VirtualHost *:8080&gt;
 #Basic setup
 ServerAdmin &lt;admin email&gt;
 ServerName www.&lt;domain name&gt;
 ServerAlias &lt;domain name&gt;

 &lt;Directory /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/apache/&gt;
 Order deny,allow
 Allow from all
 &lt;/Directory&gt;

 LogLevel warn
 ErrorLog  /home/&lt;username&gt;/public_html/&lt;domain name&gt;/logs/apache_error.log
 CustomLog /home/&lt;username&gt;/public_html/&lt;domain name&gt;/logs/apache_access.log combined

 WSGIDaemonProcess &lt;domain name&gt; user=www-data group=www-data threads=25
 WSGIProcessGroup &lt;domain name&gt;

 WSGIScriptAlias / /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/apache/&lt;django project name&gt;.wsgi
&lt;/VirtualHost&gt;</pre>
<p>Aktifkan konfigurasi tersebut dan restart Apache</p>
<pre>sudo a2ensite &lt;domain name&gt;
sudo /etc/init.d/apache2 reload</pre>
<p><strong>Reload WSGI Daemon Mode</strong></p>
<p>Konfigurasi di atas akan menjalankan mod_wsgi dalam moda Daemon, dengan demikian apabila anda melakukan perubahan script, silahkan di touch file .wsgi nya agar group proses wsgi akan direload ulang, dengan demikian anda tidak perlu mereload / restart Apache setiap terjadi perubahan script.</p>
<pre>sudo touch /home/&lt;username&gt;/public_html/&lt;domain name&gt;/&lt;django project name&gt;/apache/&lt;djangoproject&gt;.wsgi</pre>
<p><strong>Referensi</strong></p>
<ul>
<li><a  href="http://www.meppum.com/2009/jan/17/installing-django-ubuntu-intrepid/" target="_blank">http://www.meppum.com/2009/jan/17/installing-django-ubuntu-intrepid/</a></li>
<li><a  href="http://code.google.com/p/modwsgi/">http://code.google.com/p/modwsgi/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/aplikasi-linux/django-nginx-dan-apache-mod_wsgi-di-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalasi Phusion Passenger Sebagai Modul Nginx</title>
		<link>http://artikel.magnet-id.com/aplikasi-linux/instalasi-phusion-passenger-sebagai-modul-nginx/</link>
		<comments>http://artikel.magnet-id.com/aplikasi-linux/instalasi-phusion-passenger-sebagai-modul-nginx/#comments</comments>
		<pubDate>Sat, 16 May 2009 10:53:52 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Aplikasi Linux]]></category>
		<category><![CDATA[Programming dan Framework]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[RoR]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=851</guid>
		<description><![CDATA[Phusion Passenger atau mod_rails atau mod_rack juga dapat diinstal sebagai modul Nginx, apabila anda menggunakan Nginx sebagai web server untuk aplikasi Ruby on Rails yang sedang anda kembangkan. Instalasi akan dilakukan pada mesin dengan Operating System CentOS 64 bit, sebagai contoh kasus adalah VPS yang disediakan oleh Magnet Hosting. Harus diperhatikan bahwa langkah berikut dilakukan [...]]]></description>
			<content:encoded><![CDATA[<p>Phusion Passenger atau mod_rails atau mod_rack juga dapat diinstal sebagai modul Nginx, apabila anda menggunakan Nginx sebagai web server untuk aplikasi Ruby on Rails yang sedang anda kembangkan.</p>
<p><span id="more-851"></span>Instalasi akan dilakukan pada mesin dengan Operating System CentOS 64 bit, sebagai contoh kasus adalah VPS yang disediakan oleh Magnet Hosting. Harus diperhatikan bahwa langkah berikut dilakukan pada system yang telah memilki instalasi dan konfigurasi Nginx yang telah berjalan dengan baik.</p>
<p><strong>Instalasi Ruby</strong></p>
<p>Berikut software package ruby yang harus diinstall terlebih dahulu;</p>
<pre class="brush: bash">yum install -y ruby ruby-devel rdoc</pre>
<p>Kemudian lakukan kompilasi Ruby Gems dari Rubyforge.</p>
<pre class="brush: bash">cd /usr/src/
wget wget http://www.magnet-id.com/download/framework/ror/rubygems/rubygems-1.3.3.tgz
tar xzvf rubygems-1.3.3.tgz
cd rubygems-1.3.3
ruby setup.rb</pre>
<p>Juga lakukan instalasi rake dan fastthread</p>
<pre class="brush: bash">gem install rake
gem install fastthread</pre>
<p><strong>Instalasi Passenger</strong></p>
<p>Download source file passenger</p>
<pre class="brush: bash">cd /usr/src/
wget http://www.magnet-id.com/download/Apache/passenger-2.2.2.tar.gz
tar xzvf passenger-2.2.2.tar.gz
cd passenger-2.2.2
./bin/passenger-install-nginx-module</pre>
<p>Script diatas akan memandu proses instalasi modul passenger, apabila nginx anda disetup dan dikonfigurasi berdasarkan panduan yang ada di <a  title="Instalasi Nginx" href="http://artikel.magnet-id.com/knowledge-base/vps-knowledge-base/nginx-mysql-php-di-centos-52-64-bit/" target="_blank">http://artikel.magnet-id.com/knowledge-base/vps-knowledge-base/nginx-mysql-php-di-centos-52-64-bit/</a>,  silahkan ikuti langkah berikut;</p>
<pre class="brush: bash">Automatically download and install Nginx?
...

Do you want this installer to download, compile and install Nginx for you?

1. Yes: download, compile and install Nginx for me. (recommended)
...
2. No: I want to customize my Nginx installation. (for advanced users)
...
Whichever you choose, if you already have an existing Nginx configuration file,
then it will be preserved.</pre>
<p>Pilih no.2 pada pertanyaan di atas; panduan instalasi akan dilanjutkan, silahkan perhatikan jawaban yang sudah dimasukkan ke dalam teks berikut, sesuai dengan artikel instalasi Nginx;</p>
<pre class="brush: bash">Where is your Nginx source code located?
Please specify the directory: /usr/local/src/nginx-0.6.36

Where do you want to install Nginx to?
Please specify a prefix directory [/opt/nginx]: /usr/local/nginx
--------------------------------------------
Extra Nginx configure options

If you want to pass extra arguments to the Nginx &#039;configure&#039; script, then
please specify them. If not, then specify nothing and press Enter.

If you specify nothing then the &#039;configure&#039; script will be run as follows:

./configure --prefix=&#039;/usr/local/nginx&#039; --add-module=&#039;/usr/src/passenger-2.2.2/ext/nginx&#039;

Extra arguments to pass to configure script: --pid-path=/usr/local/nginx/logs/nginx.pid --sbin-path=/usr/local/sbin/nginx --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_ssl_module  --with-http_dav_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module

--------------------------------------------</pre>
<p>Apabila kompilasi ulang berhasil, anda akan mendapatkan pesan berikut;</p>
<pre>Nginx with Passenger support was successfully installed.

Please edit your Nginx configuration file (probably /usr/local/nginx/conf/nginx.conf),
and set the passenger_root and passenger_ruby configuration options in the
'http' block, like this:

  http {
      ...
      passenger_root /usr/src/passenger-2.2.2;
      passenger_ruby /usr/bin/ruby;
      ...
  }</pre>
<p><strong>Konfigurasi Nginx</strong></p>
<p>Untuk mengaktifkan passenger, silahkan tambahkan direktif</p>
<pre>      passenger_root /usr/src/passenger-2.2.2;
      passenger_ruby /usr/bin/ruby;</pre>
<p>Di dalam tag http {}</p>
<p>Kemudian di dalam direktif server {} silahkan ditambahkan</p>
<pre>root /somewhere/public;   # &lt;--- be sure to point to 'public'!
passenger_enabled on;</pre>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/aplikasi-linux/instalasi-phusion-passenger-sebagai-modul-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rotasi Log Nginx pada CentOS</title>
		<link>http://artikel.magnet-id.com/aplikasi-linux/rotasi-log-nginx-pada-centos/</link>
		<comments>http://artikel.magnet-id.com/aplikasi-linux/rotasi-log-nginx-pada-centos/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 16:03:44 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Aplikasi Linux]]></category>
		<category><![CDATA[Log]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=781</guid>
		<description><![CDATA[Buat anda yang melakukan instalasi Nginx Web Server secara manual misalnya melalui artikel ini, jangan lupa untuk melakukan rotasi log nginx dan php-fpm anda, kalau tidak server akan menjadi berat karena ukuran log yang semakin lama semakin besar.]]></description>
			<content:encoded><![CDATA[<p>Buat anda yang melakukan instalasi Nginx Web Server secara manual misalnya melalui artikel <a  title="Instalasi Nginx" href="http://artikel.magnet-id.com/knowledge-base/vps-knowledge-base/nginx-mysql-php-di-centos-52-64-bit/">ini</a>, jangan lupa untuk melakukan rotasi log nginx dan php-fpm anda, kalau tidak server akan menjadi berat karena ukuran log yang semakin lama semakin besar.</p>
<p><span id="more-781"></span></p>
<p><strong>Direktori Log</strong></p>
<p>Apabila belum dilakukan, silahkan buat direktori khusus untuk menyimpan log php-fpm dan log nginx; Pada contoh ini kita akan membuat direktori log yang sama di dalam /var/log untuk kedua keperluan tersebut.</p>
<pre class="brush: bash">mkdir /var/log/nginx</pre>
<p><strong>Log Nginx</strong></p>
<p>Nginx akan menyimpan file log di file yang kita tentukan pada konfigurasi virtual host di dalam tag server {}; sebagai contoh;</p>
<pre>server {
    ...
    access_log  /var/log/nginx/domainanda.com.access.log;
    error_log  /var/log/nginx/domainanda.com.error.log;
    ...
    }</pre>
<p>Pastikan bahwa anda menentukan posisi log tersebut, apabila tidak maka log akan masuk ke dalam default di /usr/local/nginx/log/. Setelah modifikasi dilakukan silahkan restart nginx;</p>
<pre class="brush: bash">/etc/init.d/nginx restart</pre>
<p><strong>Log php-fpm</strong></p>
<p>Lokasi file log php-fpm juga harus dimodifikasi secara manual melalui file konfigurasinya;</p>
<pre class="brush: bash">vi /usr/local/etc/php-fpm.conf</pre>
<p>Edit entry di dalam file tersebut di baris 12 (:12) menjadi;</p>
<pre> &lt;value name="error_log"&gt;/var/log/nginx/php-fpm.log&lt;/value&gt;</pre>
<p>Setelah modifikasi dilakukan, silahkan restart php-fpm;</p>
<pre class="brush: bash">/etc/init.d/php-fpm restart</pre>
<p><strong>Rotasi Log</strong></p>
<p>Untuk membuat log tersebut terotasi secara otomatis, buat file berjudul nginx di directory /etc/log.rotate.d/;</p>
<pre class="brush: bash">vi /etc/logrotate.d/nginx</pre>
<p>Isikan dengan text berikut;</p>
<pre>/var/log/nginx/*.log {
        daily
        missingok
        rotate 10
        compress
        delaycompress
        notifempty
        postrotate
                /sbin/service nginx restart
        endscript
}</pre>
<p>Kemudian restart syslog;</p>
<pre class="brush: bash">/etc/init.d/syslog restart</pre>
<p>Konfigurasi di dalam file tersebut bisa kita ubah untuk memodifikasi prilaku rotasi, silahkan ditelaah lebih lanjut melalui url <a  title="Logrotate" href="http://www.linuxconfig.org/Logrotate" target="_blank">http://www.linuxconfig.org/Logrotate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/aplikasi-linux/rotasi-log-nginx-pada-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL dan Nginx</title>
		<link>http://artikel.magnet-id.com/aplikasi-linux/ssl-dan-nginx/</link>
		<comments>http://artikel.magnet-id.com/aplikasi-linux/ssl-dan-nginx/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 21:01:28 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Aplikasi Linux]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=397</guid>
		<description><![CDATA[Setelah sebelumnya kita mencoba memanfaatkan fasilitas SSL dengan web server Apache, kali ini kita akan melakukan konfigurasi SSL dengan Nginx. Tulisan ini dibuat untuk memandu langkah demi langkah yang perlu dilakukan untuk menggunakan SSL pada Nginx termasuk proses pembuatan Key Pair dan self signed certificate yang sedikit berbeda dengan SSL pada Apache.]]></description>
			<content:encoded><![CDATA[<p>Setelah sebelumnya kita mencoba <a  title="Apache 2 dan SSL" href="http://artikel.magnet-id.com/knowledge-base/vps-knowledge-base/apache-2-dan-ssl/" target="_blank">memanfaatkan fasilitas SSL dengan web server Apache</a>, kali ini kita akan melakukan konfigurasi SSL dengan <a  title="Nginx Web Server" href="http://www.nginx.net" target="_blank">Nginx</a>. Tulisan ini dibuat untuk memandu langkah demi langkah yang perlu dilakukan untuk menggunakan SSL pada Nginx termasuk proses pembuatan Key Pair dan self signed certificate yang sedikit berbeda dengan SSL pada Apache.</p>
<p><span id="more-397"></span></p>
<p>Fasilitas komentar untuk artikel ini dimatikan, feedback dan error yang anda dapatkan saat menjalankan langkah-langkah yang diuraikan disini silahkan diutarakan melalui <a  title="Forum Magnet Hosting" href="http://forum.magnet-id.com/" target="_blank">Forum Magnet http://forum.magnet-id.com/</a>.</p>
<p>Pada contoh kasus ini mesin Linux menggunakan CentOS 64 bit. Studi kasus adalah menjalankan <a  title="phpMyAdmin" href="http://www.phpmyadmin.net/" target="_blank">phpMyAdmin</a> pada port HTTPS 443 dengan menggunakan Nginx. Prinsip yang sama dapat digunakan dengan operating system dan aplikasi web lainnya.</p>
<p><strong>openssl</strong></p>
<p>Pastikan bahwa mesin Linux anda telah terinstall dengan <a  title="openssl" href="http://www.openssl.org/" target="_blank">openssl</a>; kita akan menggunakan openssl untuk mengenerate key pair dan self signed certificate.</p>
<pre class="brush: bash">yum install openssl</pre>
<p><strong>Create Keys, CSR (Certificate Signing Request) dan Certificates</strong></p>
<p>Buat direktori temporer yang dapat anda hapus kemudian setelah semua proses dilakukan dengan sukses.</p>
<pre class="brush: bash">mkdir /root/temp
cd /root/temp</pre>
<p>Create private key, masukkan passphrase, passphrase ini akan kita hapus kemudian;</p>
<pre class="brush: bash">openssl genrsa -des3 -out pma.key 1024</pre>
<p>Create CSR (Certificate Signing Request) dan masukkan informasi yang dibutuhkan, dianjurkan untuk memasukkan Common Name (CN) sesuai dengan nama server yang akan dilayani, calam contoh ini adalah pma.yourdomain.com.</p>
<pre class="brush: bash">openssl req -new -key pma.key -out pma.csr</pre>
<p>Hapus passphrase yang kita masukkan sebelumnya, apabila hal ini tidak dilakukan maka kita diharuskan untuk memasukkan passphrase setiap mesin / web server anda di reboot.</p>
<pre class="brush: bash">cp pma.key pma.key.org
openssl rsa -in pma.key.org -out pma.key</pre>
<p>Create self signed digital certificate</p>
<pre class="brush: bash">openssl x509 -req -days 365 -in pma.csr -signkey pma.key -out pma.crt</pre>
<p>Selanjutnya adalah memindahkan file certificate (crt) dan file key ke direktori yang akan dipanggil kemudian melalui konfigurasi Nginx, dalam kasus ini kita akan memindahkan ke direktori Nginx (cert), sesuaikan path dengan selera anda.</p>
<pre class="brush: bash">mkdir /usr/local/nginx/cert
cp pma.crt pma.key /usr/local/nginx/cert</pre>
<p><strong>Konfigurasi Nginx </strong></p>
<p>Berikut entry dari konfigurasi nginx bagian server { }, melalui konfigurasi ini kita akan melayani request ssl pada port 443.</p>
<pre class="brush: bash">server {
listen pma.yourdomain.com:443;
client_max_body_size 10M;
index index.php;
server_name pma.yourdomain.com;
root /var/www/pma.yourdomain.com;

ssl on;
ssl_certificate /usr/local/nginx/cert/pma.crt;
ssl_certificate_key /usr/local/nginx/cert/pma.key;

location / {
proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;
proxy_max_temp_file_size 0;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param HTTPS on;
include /usr/local/nginx/conf/fastcgi_params;
}
}</pre>
<p><strong></strong></p>
<p><strong>References</strong></p>
<ul>
<li><a  href="http://rubyjudo.com/2006/11/2/nginx-ssl-rails" target="_blank">http://rubyjudo.com/2006/11/2/nginx-ssl-rails</a></li>
<li><a  href="http://articles.slicehost.com/2007/12/19/ubuntu-gutsy-self-signed-ssl-certificates-and-nginx" target="_blank">http://articles.slicehost.com/2007/12/19/ubuntu-gutsy-self-signed-ssl-certificates-and-nginx</a></li>
<li><a  href="http://blog.skateinmars.net/post/2007/11/01/phpMyAdmin-and-HTTPS-on-nginx" target="_blank">http://blog.skateinmars.net/post/2007/11/01/phpMyAdmin-and-HTTPS-on-nginx</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/aplikasi-linux/ssl-dan-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx, MySQL, PHP di CentOS 5.2 64 bit</title>
		<link>http://artikel.magnet-id.com/aplikasi-linux/nginx-mysql-php-di-centos-52-64-bit/</link>
		<comments>http://artikel.magnet-id.com/aplikasi-linux/nginx-mysql-php-di-centos-52-64-bit/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 11:46:41 +0000</pubDate>
		<dc:creator>Magnet Hosting</dc:creator>
				<category><![CDATA[Aplikasi Linux]]></category>
		<category><![CDATA[Database Server]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://artikel.magnet-id.com/?p=386</guid>
		<description><![CDATA[Nginx, dibaca Engine &#8211; X merupakan High Performance HTTP Server dan Reverse Proxy serta IMAP/POP3 Proxy Server yang bersifat opensource dan gratis. Dikembangkan oleh Igor Sysoe pada tahun 2005 Nginx dengan cepat menjadi populer karena kestabilan, kekayaan fitur dan konsumsi resources yang sangat rendah meskipun masih dalam status beta, diambil dari wiki Nginx. Artikel ini [...]]]></description>
			<content:encoded><![CDATA[<p><a  title="Nginx" href="http://www.nginx.net/" target="_blank">Nginx</a>, dibaca Engine &#8211; X merupakan High Performance HTTP Server dan Reverse Proxy serta IMAP/POP3 Proxy Server yang bersifat opensource dan gratis. Dikembangkan oleh  <a  title="Nginx Developer" href="http://sysoev.ru/en/" target="_blank">Igor Sysoe</a> pada tahun 2005 Nginx dengan cepat menjadi populer karena kestabilan, kekayaan fitur dan konsumsi resources yang sangat rendah meskipun masih dalam status beta, diambil dari <a  title="nginx wiki" href="http://wiki.codemongers.com/Main" target="_blank">wiki</a> Nginx.</p>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-387" title="LEMP" src="http://artikel.magnet-id.com/wp-content/uploads/2008/08/lemp.gif" alt="Engine-X, MySQL, PHP" width="400" height="100" /><p class="wp-caption-text">Engine-X, MySQL, PHP</p></div>
<p>Artikel ini akan memandu anda melakukan instalasi <a  title="Nginx" href="http://www.nginx.net/" target="_blank">Nginx HTTP Server</a>, <a  title="MySQL Database Server" href="http://www.mysql.com" target="_blank">MySQL</a> Server dan <a  title="PHP" href="http://www.php.net/" target="_blank">PHP</a> (fast-cgi) dengan menggunakan <a  title="PHP FPM" href="http://php-fpm.anight.org/" target="_blank">php-fpm Fats CGI Proccess Manager</a> di mesin <a  title="CentOS" href="http://www.centos.org/" target="_blank">CentOS</a> 5.2 64 bit dengan studi kasus <a  title="Virtual Private Server (VPS) Indonesia dari Magnet" href="http://www.magnet-id.com/vps/" target="_blank">VPS (Virtual Private Server)</a> yang disediakan oleh <a  title="Magnet Hosting" href="http://www.magnet-id.com/" target="_blank">Magnet</a> dan menggunakan base install template.</p>
<p><span id="more-386"></span></p>
<p>Fasilitas komentar untuk artikel ini dimatikan, feedback dan error yang anda dapatkan saat menjalankan langkah-langkah yang diuraikan disini silahkan diutarakan melalui <a  title="Forum Magnet Hosting" href="http://forum.magnet-id.com/" target="_blank">Forum Magnet http://forum.magnet-id.com/.</a></p>
<p><strong>Instalasi MySQL</strong></p>
<pre class="brush: bash">yum install -y mysql-server mysql-devel
service mysqld start
mysql_secure_installation

Enter current password for root (enter for none): Enter
Set root password? [Y/n] Y
New password: rootpasssql
Re-enter new password: rootpasssql
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y</pre>
<p><strong>Instalasi Paket yang dibutuhkan</strong></p>
<pre class="brush: bash">yum install -y wget patch gcc libtool libmcrypt-devel libxml2-devel flex bison make pcre-devel zlib-devel openssl-devel gd-devel</pre>
<p><strong>Kompilasi PHP dan PHP-FPM patch</strong></p>
<p>Kita akan melakukan kompilasi PHP 5.2.6 dari source bersama dengan patch PHP-FPM, download PHP 5.2.6 source file dan patch php-fpm;</p>
<pre class="brush: bash">cd /usr/local/src
wget http://www.magnet-id.com/download/php/php-5.2.6.tar.gz
wget http://www.magnet-id.com/download/php/php-5.2.6-fpm-0.5.8.diff.gz</pre>
<p>Apply patch PHP-FPM dan install PHP, sesuaikan parameter konfigurasi dengan kebutuhan anda, apabila berbeda dari contoh berikut maka ada kemungkinan anda harus melakukan instalasi library yang terkait melalui yum.</p>
<pre class="brush: bash">tar xzvf php-5.2.6.tar.gz
gzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d php-5.2.6 -p1
cd php-5.2.6
./configure \
--enable-fastcgi \
--enable-fpm \
--enable-cli \
--with-mcrypt \
--with-zlib \
--enable-mbstring \
--with-openssl \
--with-mysql \
--with-mysql-sock \
--with-gd \
--with-jpeg-dir=/usr/lib64 \
--enable-gd-native-ttf \
--without-sqlite \
--disable-pdo \
--disable-reflection \
--with-libdir=lib64 \
--with-xpm-dir=/usr/lib64 \
--enable-gd-jis-conv \
--with-freetype-dir=/usr/include/freetype2 \
--with-ttf=/usr/include/freetype2 \
--enable-shared
make all install
strip /usr/local/bin/php-cgi</pre>
<p>Modifikasi konfigurasi PHP-FPM pada baris 63 dan 65, hilangkan simbol komentar (&lt;!&#8211; dan &#8211;&gt;) dan rubah username dan group yang menjalankan PHP-FPM, dalam hal ini kita menggunakan nobody (default).</p>
<pre class="brush: bash">vi /usr/local/etc/php-fpm.conf</pre>
<p>Modifikasi baris 63 dan 65 menjadi;</p>
<pre>Unix user of processes
&lt;value name="user"&gt;nobody&lt;/value&gt;
Unix group of processes
&lt;value name="group"&gt;nobody&lt;/value&gt;</pre>
<p>Install <a  title="XCache" href="http://xcache.lighttpd.net/" target="_blank">XCache</a>, opcode PHP Cacher;</p>
<pre class="brush: bash">cd /usr/local/src
wget http://www.magnet-id.com/download/php/xcache-1.2.2.tar.gz
tar xzvf xcache-1.2.2.tar.gz
cd xcache-1.2.2
phpize
./configure --with-php-config=/usr/local/bin/php-config --enable-xcache
make install</pre>
<p>Masukkan konfigurasi XCache dan load ekstension melalui file konfigurasi PHP &#8211; php.ini (yang saat ini baru akan kita buat) di /usr/local/lib/php.ini ;</p>
<pre class="brush: bash">vi /usr/local/lib/php.ini</pre>
<p>Masukkan konfigurasi berikut, file php.ini ini yang nantinya akan diload secara default, silahkan masukkan konfigurasi php lainnya di file ini apabila ada.</p>
<pre class="brush: bash">magic_quotes_gpc=0
[xcache-common]
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
[xcache]
xcache.shm_scheme = &quot;mmap&quot;
xcache.size = 64M</pre>
<p>Periksa instalasi PHP anda;</p>
<pre class="brush: bash">php -v
PHP 5.2.6 (cli) (built: Aug 10 2008 18:18:48)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with XCache v1.2.2, Copyright (c) 2005-2007, by mOo</pre>
<p><strong>Init Script untuk PHP-FPM</strong></p>
<p>Buat init script untuk PHP-FPM dan masukkan di rc.local agar diload secara otomatis ketika mesin anda di reboot;</p>
<pre class="brush: bash">cd /etc/init.d/
ln -s /usr/local/sbin/php-fpm php-fpm

## add this line to /etc/rc.local ##
/etc/init.d/php-fpm start</pre>
<p><strong>Instalasi Nginx</strong></p>
<p>Kemudian kita akan melakukan instalasi Nginx, versi stabil saat ini adalah 0.6.32, silahkan periksa situs terkait untuk versi stabil yang lebih baru;</p>
<pre class="brush: bash">cd /usr/local/src
wget http://www.magnet-id.com/download/nginx/nginx-0.6.32.tar.gz
tar xfz nginx-0.6.32.tar.gz
cd nginx-0.6.32
./configure --pid-path=/usr/local/nginx/logs/nginx.pid --sbin-path=/usr/local/sbin/nginx --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_ssl_module  --with-http_dav_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module
make
make install</pre>
<p><strong>Daemon Nginx untuk CentOS</strong></p>
<p>Kita akan mengambil init script nginx daemon untuk CentOS yang dibuat oleh http://notrocketsurgery.com/, dan memasukkan ke dalam daftar service yang di start up otomatis ketika mesin anda di reboot;</p>
<pre class="brush: bash">wget http://www.magnet-id.com/download/nginx/nginx-daemon -O /etc/init.d/nginx
chmod 750 /etc/init.d/nginx</pre>
<p>Install start-stop-daemon</p>
<pre class="brush: bash">cd /usr/local/src
wget http://www.magnet-id.com/download/nginx/apps-sys-utils-start-stop-daemon-IR1_9_18-1.tar.gz
tar zxvf apps-sys-utils-start-stop-daemon-IR1_9_18-1.tar.gz
cd apps/sys-utils/start-stop-daemon-IR1_9_18-1/
gcc start-stop-daemon.c -o start-stop-daemon
cp start-stop-daemon /usr/sbin
chkconfig --add nginx
chkconfig --level 345 nginx on</pre>
<p><strong>Konfigurasi Nginx untuk PHP dan PHP-FPM Fast CGI</strong></p>
<p>File konfigurasi Nginx yang kita install sebelumnya dapat ditemui di direktori /usr/local/nginx/conf/; tambahkan terlebih dahulu parameter di fastcgi_params;</p>
<pre class="brush: bash">vi /usr/local/nginx/conf/fastcgi_params</pre>
<p>Tambahkan baris berikut di bagian akhir;</p>
<pre class="brush: bash">fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</pre>
<p>Sesuaikan konfigurasi Nginx</p>
<pre class="brush: bash">vi /usr/local/nginx/conf/nginx.conf</pre>
<p>Ubah, tambahkan keterangan berikut;</p>
<pre class="brush: bash">user  nobody;
worker_processes  5;
error_log  /var/log/nginx/error.log;
events {
worker_connections  768;
}</pre>
<p>Buat direktori untuk keperluan logs nginx (tidak menggunakan default);</p>
<pre class="brush: bash">mkdir /var/log/nginx</pre>
<p>Modifikasi konfigurasi di dalam http { }; perhatikan bahwa dalam tahap ini kita menghapus access log, silahkan ditambahkan pada konfigurasi virtual host nginx pada panduan berikutnya;</p>
<pre class="brush: bash">include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nodelay on;
keepalive_timeout 10 10;
gzip on;
gzip_comp_level 1;
gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;</pre>
<p>Di dalam http {  server { } }; edit/ tambahkan konfigurasi berikut; Di dalam contoh berikut, domain yang ingin kita layani menggunakan nginx adalah deploy.magnet-id.com, pastikan bahwa domain tersebut sudah dapat diresolve dari mesin bersangkutan, karena kalau tidak nginx tidak mau / gagal start-up.</p>
<pre class="brush: bash">listen 80;
server_name deploy.magnet-id.com;
index index.php index.html index.html;
root html;

location / {
error_page 404 = //index.php?q=$uri;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}</pre>
<p>Di konfigurasi server {} dapat kita lihat bahwa root web direktori adalah html, dalam hal ini adalah /usr/local/nginx/html, anda dapat merubah path root web direktori sesuai dengan selera anda selama modifikasi konfigurasi disesuaikan.</p>
<p>Start Nginx dan PHP-FPM;</p>
<pre class="brush: bash">service nginx start
/etc/init.d/php-fpm start</pre>
<p>Buat sebuah file php untuk menjalankan phpinfo() di /usr/local/nginx/html dan panggil file tersebut untuk memastikan bahwa PHP-FPM dan Nginx sudah berhasil di install dan dikonfigurasi dengan baik.</p>
]]></content:encoded>
			<wfw:commentRss>http://artikel.magnet-id.com/aplikasi-linux/nginx-mysql-php-di-centos-52-64-bit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

