III. Cấu hình Nginx
3.5 Các cấu hình liên quan đến http ( module http core)
Module HTTP Core là thành phần chứa tất cả các khối, chỉ thị và các biến cơ bản của máy chủ HTTP. Mặc định module này được cài đặt trong khi biên dịch, nhưng không được bật lên khi Nginx chạy, việc sử dụng module này là khơng bắt buộc. Chúng ta có thể gỡ bỏ nó trong q trình biên dịch chương trình.
Module này là 1 trong những module tiêu chuẩn lớn nhất của Nginx – nó cung cấp 1 số lượng ấn tượng các chỉ thị và biến. Để có thể hiểu được tất cả các yếu tố mới này và vai trò của chúng, chúng ta cần hiểu tổ chức luận lý được giới thiệu trong 3 khối chỉ thị chính – http, server và location.
HTTP , SERVER VÀ LOCATION
Đây là các directive quản lý module http core.
http: được khai báo ở phần đầu của tập tin cấu hình. Nó cho phép chúng ta bắt đầu định
nghĩa các chỉ thị và các khối từ tất cả các module liên quan đến khía cạnh HTTP của Nginx. Khối chỉ thị này có thể được khai báo nhiều lần trong tập tin cấu hình, và các giá trị chỉ thị được chèn trong khối http sau sẽ ghi đè lên các chỉ thị nằm trong khối http trước đó.
server: khối này cho phép chúng ta khai báo 1 website. Nói cách khác, 1 website cụ thể
(được nhận diện bởi 1 hoặc nhiều hostname) được thừa nhận bới Nginx và nhận cấu hình của chính nó. Khối này chỉ có thể được dùng bên trong khối http.
location: cho phép chúng ta định nghĩa 1 nhóm các thiết lập được áp dụng cho 1 vị trí cụ
thể trên website (thể hiện qua URL của website đó). Khối location có thể được dùng bên trong 1 khối server hoặc nằm chồng bên trong 1 khối location khác.
3.5.1 Cấu hình phục vụ một trang web tĩnh.
Ở cấu hình này ta cần khai báo một directive server nằm bên trong một khối http đề bắt các request của người dùng cho một host name.
Ta có:
Tên hostname phục vụ là www.msmteam.com lắng nghe trên port 80
Thư mục chứa tập html tĩnh: /usr/local/nginx/html/
Thư mục chứa tập tin hình ảnh: /usr/local/nginx/images/image/
Block1 :
location / {
root html;
index first.html first.htm; }
Ý nghĩa của khối này là nếu URL(http://www.msnteam.com / ) so khớp với “/” thì tài
nguyên được đặt trong thư mục được chỉ định bởi root directive là html tức thư mục
/usr/local/nginx/html/. Index directive chỉ định trang chỉ mục của hostname. Block2:
location /image/ { root images; }
Ý nghĩa của khối này là nếu URL (http://msnteam.com /image/ gt.jpg) có phần
đầu sau tên miền giống với chuỗi /image/ thì tài nguyên của cần truy cập nằm trong thư mục được chỉ định bởi root drirective + /image/ tức là thư mục usr/local/nginx/images/image/
Lưu ý: thứ tự ưu tiên của của location khơng phụ thuộc vào vị trí đặt trước sau của khối location, ví dụ chuỗi url http://msnteam.com /image/ gt.jpg có “/image/” so khớp dài hơn “/” nên giữ
location ở Block2.
Để hiểu về thứ tự ưu tiên tham khảo trang sau: http://justpassion.net/system/web/nginx/cau-hinh-
may-chu-http-trong-nginx-cac-khoi-location.html
3.5.2 Cấu hình virtual hosting
Như ở phần trên ta đã cấu hình server Nginx phục vụ host name www.msnteam.com. Và Nginx hỗ trợ tính năng virtua hosting , bây giờ ta có như cầu phục vụ thêm host name
Ở đây ta sử dụng thêm một directive server được đặt trong khối http
server {
listen 80;
server_name www.msnteam.net msnteam.net; location / { root html; index second.html; } location /image/ { root images; } }
Nginx sẽ quyết định xử lý request theo host name nào phụ thuộc vào trường host name trong gói tin http , giả sử ta có url : www.msnteam.net khi gói tin được gửi đến server Nginx dựa vào host
Tài liệu tham khảo:
Các trang web đã tham khảo.
www.nginx.org www.nginx.com
http://congdonglinux.vn http://justpassion.net