[Web server] Tổng hợp các nginx virtualhost content HTTP, HTTPS

NGINX sử dụng cấu trúc sắp xếp virtualhost giống như Apache, nghĩa là tất những file virtualhost sẽ được lưu trữ trong thư mục /etc/nginx/sites-available/ và chỉ những enabled virtualhost mới đặt soft-link vào trong /etc/nginx/sites-enabled. Trong NGINX không có câu lệnh e2ensite, do đó để tạo soft-link, chúng ta sử dụng câu lệnh sau:
ln -s /etc/nginx/sites-available/virtualhost1 /etc/nginx/sites-enabled/virtualhost1
Sau đây là một số file virtualhost mình đang sử dụng cho các trường hợp khác nhau và sẽ được cập nhật cho phù hợp theo kinh nghiệm quản trị.

[Liferay] How to load https for Liferay content behind reverse proxy

Normally, Liferay does not load the https URL with variables $ javascript_folder, $ css_folder, browser will block the insecure content (usually javascript, css and image) and website show will fail.
[blocked] The page at 'https://example.com/' was loaded over HTTPS, but ran insecure content from 'http://example.com/notifications-portlet/notifications/js/main.js?browserId=other&minifierType=js&languageId=en_US&b=6201&t=1399630101000': this content should also be loaded over HTTPS.

[blocked] The page at 'https://example.com/' was loaded over HTTPS, but ran insecure content from 'http://example.com/vnhomnay-theme/css/aui.css?browserId=other&themeId=…WAR_vnhomnaytheme&minifierType=css&languageId=en_US&b=6201&t=1399942235000': this content should also be loaded over HTTPS.

[Web server] Hướng dẫn tạo SSL certification trên Linux

Bước 1. Tạo 2 file .csr (file request, được sử dụng để gửi cho bên bán chứng chỉ SSL, ví dụ Godaddy, DigiCert...) và .key (file private key, file này sẽ được sử dụng cùng với file certification ở bước 2 để xác thực SSL)
openssl req -new -newkey rsa:2048 -nodes -out star_chungkol_com.csr -keyout star_chungkol_com.key -subj "/C=VN/ST=VN/L=Danang/O=QGS Inc/OU=IT/CN=*.qgsdemo.com"
Bước 2. Gửi file .csr cho bên bán chứng chỉ SSL và họ sẽ gửi cho chúng ta 1 file có đuôi .crt (file này chính là file certification. Hoặc chúng ta có thể tự tạo file certification (untrust) với command sau:
openssl x509 -req -days 365 -in star_chungkol_com.csr -signkey server.key -out star_chungkol_com.crt

[Web server] Cài đặt và cấu hình cơ bản NGINX trên Ubuntu server

Nginx là một web server mã nguồn mở miễn phí, là một HTTP server, reverse proxy cũng như IMAP/POP3 proxy. Igor Sysoev bắt đầu phát triển Nginx vào năm 2002 và phát hành công khai đầu tiên vào năm 2004. Nginx được sử dụng khá phổ biến 12.18% (22.2 triệu) các site đang hoạt động. Nginx được biết đến với các đặc điểm như hiệu quả cao, ổn định, tính năng phong phú, cấu hình đơn giản, và tiêu thụ tài nguyên thấp.
Nginx được tin dùng bởi các tổ chức có lượng truy cập lớn như  Netflix, Hulu, Pinterest, CloudFlare, Airbnb, WordPress.com, GitHub, SoundCloud, Zynga, Eventbrite, Zappos, Media Temple, Heroku, RightScale, Engine Yard and MaxCDN

[Web server] Setup Varnish cache trên Ubuntu server

I. Varnish là gì?
Varnish Cache là một web application với mục đích tăng tốc web, được biết tới nhưng một caching HTTP reverse proxy. Chúng ta cài đặt nó ở phía trước của bất kỳ server nào sủ dụng HTTP và chúng ta dùng Varnish để cache các content.
Varnish có hiệu suất hoạt động tốt, linh hoạt tùy biến các cấu hình khác nhau dựa vào ngôn ngữ cấu hình VCL (Varnish Configuration Language) và đa nền tảng hỗ trợ: Linux, FreeBSD, NetBSD, OpenBSD, OSX.
II. Cài đặt
1. Cài đặt Varnish:
a. Trên CentOS/RedHat
Step 1. Đăng ký repository với bản phân phối phù hợp:
- Với RHEL 5:
rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release/varnish-release-3.0-1.el5.centos.noarch.rpm
- Với RHEL 6:
rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm
Step 2. Cài đặt từ yum:
yum install varnish
b. Trên Debian/Ubuntu
- Trên Debian:
curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
echo "deb http://repo.varnish-cache.org/debian/ wheezy varnish-3.0" >> /etc/apt/sources.list
apt-get update
apt-get install varnish
- Trên Ubuntu:
curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -
echo "deb http://repo.varnish-cache.org/ubuntu/ precise varnish-3.0" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install varnish
c. Cài đặt từ source:
Các phiên bản đầy đủ của varnish được cập nhật liên tục tại link: http://repo.varnish-cache.org/source/
Step 1. Các gói phụ trợ yêu cầu khi cài đặt varnish:
- Trên Debian/Ubuntu:
sudo apt-get install -y autotools-dev automake1.9 libtool autoconf libncurses-dev xsltproc groff-base libpcre3-dev pkg-config
- Trên RedHat/CentOS:
yum install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
Step 2. Install
cd varnish-cache
sh autogen.sh
sh configure
make
make install
3. Cấu hình
Tất cả các cấu hình varnish sẽ được thực hiện trong file /etc/varnish/default.vcl (hoặc /usr/local/etc/varnish/default.vcl nếu bạn cài từ source)
a. Backend server:
Chúng ta có thể hiểu backend server là server cung cấp các content để varnish tăng tốc bằng việc caching.
backend default {
    .host = "10.129.128.11";
    .port = "8080";
}
Cấu hình trên thiết lập
b. Varnish Configuration Language - VCL
Varnish có một hệ thống cấu hình rất tuyệt vời với độ tùy biến cao.
Sau đây là một số vcl dùng cho các framework cụ thể:
- VCL Varnish caching cho Liferay portal
Updating...
4. Kiểm tra cấu hình
- Kiểm tra HTTP header
curl -I localhost
- Kiểm tra varnishlog cho các request mà varnish đang phục vụ:
varnishlog | grep TxURL
- Kiểm tra varnishlog cho các request mà varnish chuyển cho backend phục vụ:
varnishlog | grep RxURL
Lưu ý: 
Trong lần load đầu tiên, số RxURL request = TxURL request, trong lần load thứ 2, nếu Varnish cấu hình chính xác thì RxURL request > TxURL request

[Web server] Hướng dẫn setup Tengine trên Ubuntu

Tengine là một phần mềm mã nguồn mở máy chủ được phát triển bởi taobao.com nhằm đáp ứng các yêu cầu nghiêm ngặt về hệ thống máy chủ web, họ đã tích hợp hàng trăm module vào mã nguồn máy chủ nginx để đảm bảo hiệu suất cao, tiết kiệm tài nguyên và sự linh hoạt.
Về cơ bản, Tengine có thể được xem như là một Nginx hoàn hảo, hoặc là một super Nginx.
Bài viết này sẽ hướng dẫn các bạn install tengine trên Ubuntu server

[Web server] Hướng dẫn cài đặt Nginx, setup Load Balancer, Replication Session trên Ubuntu Server 12.04

Nginx là một máy chủ web (web server), proxy ngược (reserve proxy) và e-mail proxy (IMAP/POP3) nhẹ, hiệu năng cao, sử dụng giấy phép kiểu BSD. Nó có thể chạy trên UNIX, Linux, các dòng BSD, Mac OS X, Solaris và Microsoft Windows.
Bài viết này sẽ hướng dẫn các bạn cài đặt Nginx, setup Load Balancer, Replication Session trên Ubuntu Server 12.04.

[Web server] Authentication folder on Apache with htpasswd file or LDAP

Step 1. Authentication method:
S1. Authentication by file passwd
- Create password file
sudo nano /var/www/.passwd.txt
- Create new a user:
htpasswd /var/www/.passwd.txt username
- Create virtual host with passwd file for test folder in /etc/apache2/sites-enabled:
<Directory "/var/www/test/">        
AuthUserFile "/var/www/.passwd.txt"
AuthName "Please login for test"
AuthType Basic                
require user admin
</Directory>