Địa chỉ ip regex javascript

Nginx là một trong những máy chủ web phổ biến nhất trên thế giới. Nó có thể làm tốt nhiệm vụ xử lý hệ thống có lượng truy cập lớn cùng 1 thời điểm, có thể chắc chắn nhận được nhiều công việc như. máy chủ web, máy chủ thư hoặc máy chủ proxy ngược. Trong bài viết hướng dẫn này, chúng ta sẽ thảo luận về vấn đề. Nginx đã xử lý yêu cầu khách hàng như thế nào?

Cấu hình khối Nginx

Nginx phân chia cấu hình trong nhiều khối khác nhau để tạo thành cấu trúc cấu trúc cây. Mỗi lần yêu cầu được gửi lên máy chủ, nginx sẽ xác định khối cấu hình nào sẽ được sử dụng để xử lý yêu cầu. And normal a block blogo to handle request will have a format as after

server {
    location {
    
    }
}

Một khối máy chủ là một tập hợp của nhiều cấu hình nginx quyết định hướng xử lý lý do cho các yêu cầu khác nhau dựa trên cổng tên miền và địa chỉ IP. Một khối vị trí nằm trong khối máy chủ được sử dụng để xác định rằng nginx có thể xử lý yêu cầu cho nhiều yêu cầu với các định dạng URI khác nhau. URI could be be chia thao thao theo bất kỳ cách nào mà quản trị viên hệ thống muốn phân loại yêu cầu

Cách mà nginx quyết định khối máy chủ nào sẽ xử lý yêu cầu

kể từ khi nginx cho phép khai báo server trong config thành những block block riêng biệt cho từng virtual host thì ta cần phải có cách để xác định được khi nào thì request nào sẽ bị xử lí ở đâu. NGINX thực hiện công việc này thông qua 2 thuộc tính trong cấu hình đó là lệnh listen và lệnh server_name

Phân tích listen directive và server_name để tìm ra server web nào mà request sẽ được ánh xạ tới

Đầu tiên, NGINX sẽ xem xét địa chỉ IP và cổng của yêu cầu, NGINX sẽ đối chiếu với từng lệnh nghe của mỗi khối máy chủ để tìm ra khối nào sẽ giải quyết yêu cầu này. Thông thường thì listen directive sẽ được định nghĩa là ip hoặc port mà máy chủ sẽ trả lời. Nếu không khai báo, nginx sẽ nghe mặc định ở 0. 0. 0. 0. 80 (hoặc 0. 0. 0. 0. 8080 nếu nginx không chạy dưới quyền user không được root). Tóm tắt là phản hồi sau khi lí do hoàn tất sẽ trả về phản hồi về cổng 80

Listen directive can be set to

  • địa chỉ ip đơn (mặc định sẽ chạy ở cổng 80), hoặc kết hợp bao gồm ip và cổng
  • đường dẫn đến ổ cắm unix

Tùy chọn cuối cùng chỉ có ý nghĩa khi ta muốn trả lời yêu cầu về một máy chủ khác

Trong quá trình xác minh yêu cầu xem sẽ được chuyển đến bất kỳ khối máy chủ nào, nginx sẽ cố định thông tin từ lệnh lắng nghe trước theo luật như sau

  • NGINX sẽ gán giá trị mặc định cho khối bị thiếu thông tin. VD like. khối không có lệnh nghe sẽ sử dụng giá trị là 0. 0. 0. 0. 80, chặn địa chỉ đặt địa chỉ ip sẽ mặc định nghe ở cổng 80, chặn chỉ mỗi cổng sẽ chuyển về nghe ở điểm chỉ 0. 0. 0. 0

Sau quá trình tìm theo ip và port, nginx sẽ tìm tiếp theo chỉ thị server_name và đối chiếu nó với trường Host trong request

server {
    listen 80;
    server_name *.example.com;

    . . .

}

Địa chỉ ip regex javascript

Tóm tắt listen directive chỉ ra cổng mà nginx lắng nghe cho giao thức truyền tới, ví dụ listen 80 nghĩa là tất cả những request gửi tới bằng giao thức http sẽ được xử lí tại đây. còn server_name directive sẽ đối chiếu với field Host trong header của request để xem request có đuwocj xử lí theo khối block server này không

khối chỉ thị vị trí

Sau khi đã chọn được khối máy chủ nào sẽ tiếp nhận yêu cầu này, nginx sẽ tiếp tục phân tích URI của yêu cầu để tìm ra hướng xử lý lý do của yêu cầu dựa trên vị trí khối có cú pháp như sau

location optional_modifier location_match {

    . . .

}

tùy chọn_modifier. bạn có thể tạm hiểu nó là kiểu so sánh để tìm ra đối chiếu với location_match. Có nhiều loại tùy chọn như sau

  • (không ai). Nếu không khai báo bất cứ điều gì, NGINX sẽ hiểu là tất cả các yêu cầu có URI bắt đầu bằng phần location_match sẽ được chuyển cho khối vị trí này xử lý
  • =. Khai báo này chỉ ra rằng URI phải có chính xác giống như location_match (giống như chuỗi so sánh bình thường)
  • ~. Sử dụng biểu thức chính quy cho các URI
  • ~*. Sử dụng biểu thức chính quy cho các URI cho phép chuyển cả chữ hoa và chữ thường

Một số ví dụ

location /site {

    . . .

}

các yêu cầu có URI có định dạng như sau. /trang web, /trang web/trang/1, trang web/chỉ mục. html sẽ được xử lý thông qua vị trí này

location = /site {

    . . .

}

with 3 URI as side on, only have /site will have been handle in this directive, but /site/page/1 or /site/index. html thì không

location ~ \.(jpe?g|png|gif|ico)$ {

    . . .

}

request has đuôi. jpg,. jpeg,. png,. ảnh gif,. ico could pass qua this location but. PNG thì không

location ~* \.(jpe?g|png|gif|ico)$ {

    . . .

}

same as on but end. PNG can also pass

When any, location block will jump to other block

Thông thường khi mà khối vị trí được sử dụng để phục vụ một yêu cầu nào đó thì hành động sẽ hoàn toàn nằm trong ngữ cảnh của nó (bên trong dấu {}). Và nó sẽ chỉ nhảy sang các khối khác hoặc chuyển hương xử lý yêu cầu khi có yêu cầu từ chính bên trong bối cảnh của nó. Một vài chỉ thị có thể yêu cầu chuyển hướng. Ví dụ

  • mục lục
  • try_files
  • viết lại
  • error_page

chỉ thị chỉ mục

chỉ mục trực tiếp nằm bên trong vị trí luôn được nginx trỏ tới đầu tiên khi xử lý yêu cầu điều hướng lý do. Định nghĩa trang mặc định mà Nginx sẽ phục vụ nếu không có tên tập tin được chỉ định trong yêu cầu (nói cách khác, trang chỉ mục). Chúng ta có thể chỉ định nhiều tên tệp và tệp đầu tiên được tìm thấy sẽ được sử dụng. Nếu không có tập tin cụ thể nào được tìm thấy, Nginx sẽ hoặc đang cố gắng phát hiện 1 mục tự động của các tập tin

________số 8_______

lệnh try_files

Cố gắng phục vụ các tập tin được chỉ định (các tham số từ 1 đến N-1 trong chỉ thị), nếu không có tập tin nào tồn tại, nhảy đến vị trí khối được khai báo (tham số cuối cùng trong chỉ thị)

location / {
    try_files $uri $uri.html $uri/ /fallback/index.html;
}

viết lại chỉ thị

Khác với Apache, Nginx không sử dụng tệp. htaccess nên khi bạn cần viết lại url thì phải chuyển đổi qua quy tắc của Nginx. Trong bài viết này, mình sẽ đưa ra một số ví dụ về quy tắc mà Nginx sử dụng để viết lại url, chuyển hướng và một số cấu hình cần thiết khác

server {
    listen 80;
    server_name *.example.com;

    . . .

}
0

chỉ thị error_page

chỉ thị khi không tìm thấy tệp tham chiếu

server {
    listen 80;
    server_name *.example.com;

    . . .

}
1

Tham khảo

https. //viblo. asia/p/tim-hieu-va-huong-dan-setup-web-server-nginx-OREGwBwlvlN https. //www. kỹ thuật số. com/cộng đồng/hướng dẫn/sự hiểu biết-nginx-máy chủ-và-vị trí-khối-lựa chọn-thuật toán