Skip to main content

Posts

Showing posts with the label nginx

Dựng HTTP server bằng một câu lệnh

Đôi khi ta cần dựng 1 HTTP server, trong một nháy mắt 😎 Để: - xem nội dung 1 file html - chia sẻ file siêu tốc (tất nhiên không an toàn, ai có link cũng tải được) Giải pháp: - mọi giải pháp cần file config như NGINX, Apache đều bị loại do vượt quá yêu cầu thiết lập dưới 1 phút. Các giải pháp được đề cử 😍 busybox Nếu không có sẵn trên máy # apt-get install -y busybox $ busybox httpd -f -p 9999 -h -f : chạy foreground -p: port -h: home, thư mục sẽ phục vụ, mặc định là thư mục hiện tại Khi truy cập vào IP:9999, ta sẽ nhận được response 404 nếu không có file index.html nào trong thư mục được phục vụ. Để truy cập các file khác, ta phải tự chọn trên URL chứ không có danh sách. Ví dụ: để tải file destroy.mp4 trong thư mục phục vụ , truy cập vào http://IP:9999/destroy.mp4 Twisted  là một Python package trước tiên phải cài twisted: $ pip install twisted $ twistd -n web -p 8080 --path . Truy cập IP:8080 sẽ nhận được danh sách các file trong thư mục chỉ ra bởi...

SNI - giải pháp chạy nhiều SSL/TLS cert trên cùng 1 IP

Câu hỏi: có thể chạy nhiều trang web (khác domain) dùng HTTPS trên cùng 1 host không? Câu chuyện: nhà nghèo phải host nhiều site trên cùng 1 host mà mỗi site cần một SSL/TLS cert thì phải làm sao? Trả lời: SNI - Server Name Indication Làm sao dùng được SNI: kiểm tra xem webserver có hỗ trợ SNI không, phiên bản OpenSSL đã hỗ trợ SNI chưa. Tại thời điểm hiện tại thì câu trả lời cơ bản là có: # nginx -V nginx version: nginx/1.7.9 built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1) TLS SNI support enabled ... các phiên bản openssl từ 0.9.8j trở lên đều mặc định hỗ trợ SNI. Với Ubuntu 14.04, không cần phải lo nghĩ về chuyện này: $ openssl version OpenSSL 1.0.1f 6 Jan 2014 SNI là gì? sao lại cần?

[NGINX] luật matching khi chọn location để xử lý 1 request

Syntax: location [ = | ~ | ~* | ^~ ] uri { ... } location @ name { ... } khi nhận được 1 request, NGINX cần chọn location để xử lý request đó, quá trình này gọi là matching. Vài từ khoá Các dấu = ~ ~* ^~ gọi là các modifier. Một location có thể được định nghĩa bởi một "prefix string" hoặc regular expression (regex - nếu không biết regex là gì hãy Google, giải thích khái niệm này nằm ngoài tầm của bài viết). location /images  { } # là một location dùng "prefix string" location ~* \.(gif|jpg|jpeg)$ { } # là một location dùng regex. Regex Để sử dụng các regex, cần dùng modifier ~ hoặc ~* . ~ : regex matching có phân biệt hoa thường. Tức location meomeo khác với location MeoMeo ~*: regex matching không phân biệt hoa thường. Thứ tự xử lý

NGINX beginner

NGINX là gì? nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev . là một HTTP/reverse proxy/mail proxy server được viết để giải quyết bài toán C10K, hiện tại là một trong 2 HTTP server phổ biến nhất trên nền UNIX-like OSes. (theo http://wiki.nginx.org/Main ) Làm thế nào để trở thành một NGINX beginner? Có nhiều cách, sau đây là 1 cách vớ vẩn nhất: - Cài nginx - Đọc http://nginx.org/en/docs/beginners_guide.html Đó không phải là cách để giúp bạn config nginx thành 1 reverse-proxy nhanh nhất, hay cấu hình để nginx chạy website PHP của bạn ngay lập tức. Nhưng là một tài liệu phải đọc nếu bạn dùng NGINX. Có gì hay? - Một ít kiến thức về SIGNAL - Syntax config của NGINX - Biết cách dùng các directive để config NGINX Trích vài đoạn hay ho:

FAMILUG guide to web server

serve - server tớ không thích cách dịch phổ biến :  "web server" -> "máy chủ web". Nên trong bài này tớ sẽ dùng nguyên từ web server. Tớ có mấy câu hỏi nhờ mọi người trả lời giúp: Biết apache2 là 1 web server Biết cái máy tính dùng làm máy chủ thì gọi là server vậy cái server cài apache2 thì gọi là gì ? và cái server cài apache2 + mail server thì gọi là gì? Theo  http://oxforddictionaries.com/definition/english/serve?q=serve serve (v) : p erform duties or services for (another person or an organization): phục vụ server(n) : a person or thing that serves. là danh từ chỉ người  / vật thực hiện việc phục vụ ấy. (tạm dịch gọn là "kẻ" phục vụ) vậy web server hiểu đơn giản là một software phục vụ (các) trang web. Người dùng sẽ sử dụng client (web browser chẳng hạn, ví dụ Firefox) để truy cập tới web server để được phục vụ nội dung trang web.

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG