Nginx viết lại vào chỉ mục html
Tôi đang triển khai một SPA. Nó hoạt động khi tôi vừa nhấn vào URL cơ sở. Nhưng khi tôi truy cập một URL sâu hơn, tôi nhận được lỗi 404 từ nginx Show
Làm cách nào để định cấu hình nginx để đảm bảo nó chuyển hướng đến chỉ mục. Html? Định cấu hình NGINX và NGINX Plus để phục vụ nội dung tĩnh, với các thư mục gốc dành riêng cho loại, kiểm tra sự tồn tại của tệp và tối ưu hóa hiệu suất Phần này mô tả cách định cấu hình NGINX và NGINX Plus để phân phát nội dung tĩnh, cách xác định đường dẫn nào được tìm kiếm để tìm tệp được yêu cầu, cách thiết lập tệp chỉ mục và cách điều chỉnh NGINX và NGINX Plus, cũng như nhân, cho Thư mục gốc và tệp chỉ mụcChỉ thị chỉ định thư mục gốc sẽ được sử dụng để tìm kiếm tệp. Để có được đường dẫn của tệp được yêu cầu, NGINX nối thêm URI yêu cầu vào đường dẫn được chỉ định bởi chỉ thị 6. Chỉ thị có thể được đặt ở bất kỳ cấp độ nào trong bối cảnh 7, 8 hoặc 9. Trong ví dụ dưới đây, chỉ thị 6 được xác định cho một máy chủ ảo. Nó áp dụng cho tất cả các khối 9 trong đó lệnh 6 không được bao gồm để xác định lại gốc một cách rõ ràng
Tại đây, NGINX tìm kiếm một URI bắt đầu bằng 3 trong thư mục 4 trong hệ thống tệp. Nhưng nếu URI kết thúc bằng phần mở rộng 5 hoặc 6, thì NGINX sẽ tìm kiếm tệp trong thư mục 7 vì nó được xác định trong khối 8 phù hợpNếu một yêu cầu kết thúc bằng dấu gạch chéo, NGINX sẽ coi đó là yêu cầu cho một thư mục và cố gắng tìm một tệp chỉ mục trong thư mục. Chỉ thị xác định tên của tệp chỉ mục (giá trị mặc định là 9). Để tiếp tục với ví dụ, nếu URI yêu cầu là 0, NGINX sẽ gửi tệp 1 nếu nó tồn tại. Nếu không, NGINX trả về mã HTTP 2 theo mặc định. Thay vào đó, để định cấu hình NGINX trả về danh sách thư mục được tạo tự động, hãy thêm tham số 3 vào lệnh
Bạn có thể liệt kê nhiều tên tệp trong chỉ thị 4. NGINX tìm kiếm các tệp theo thứ tự đã chỉ định và trả về tệp đầu tiên mà nó tìm thấy________số 8_______ Biến 5 được sử dụng ở đây là biến tùy chỉnh được đặt thông qua lệnh. Giá trị của biến phụ thuộc vào địa chỉ IP của máy kháchĐể trả về tệp chỉ mục, NGINX kiểm tra sự tồn tại của nó và sau đó thực hiện chuyển hướng nội bộ tới URI thu được bằng cách thêm tên của tệp chỉ mục vào URI cơ sở. Chuyển hướng nội bộ dẫn đến tìm kiếm vị trí mới và có thể kết thúc ở một vị trí khác như trong ví dụ sau
Tại đây, nếu URI trong một yêu cầu là 6 và 7 không tồn tại nhưng 8 thì có, thì chuyển hướng nội bộ tới 9 được ánh xạ tới vị trí thứ hai. Kết quả là, yêu cầu được ủy quyềnĐang thử một số tùy chọnChỉ thị có thể được sử dụng để kiểm tra xem tệp hoặc thư mục đã chỉ định có tồn tại hay không; . Ví dụ: để kiểm tra sự tồn tại của tệp tương ứng với URI yêu cầu, hãy sử dụng chỉ thị 0 và biến 1 như sau
Tệp được chỉ định ở dạng URI, được xử lý bằng cách sử dụng các lệnh 6 hoặc 3 được đặt trong ngữ cảnh của vị trí hiện tại hoặc máy chủ ảo. Trong trường hợp này, nếu tệp tương ứng với URI ban đầu không tồn tại, NGINX sẽ thực hiện chuyển hướng nội bộ tới URI được chỉ định bởi tham số cuối cùng, trả về 4Tham số cuối cùng cũng có thể là mã trạng thái (ngay trước dấu bằng) hoặc tên của một vị trí. Trong ví dụ sau, một lỗi 5 được trả về nếu không có tham số nào của lệnh 0 giải quyết một tệp hoặc thư mục hiện có
Trong ví dụ tiếp theo, nếu cả URI gốc và URI có dấu gạch chéo được nối thêm đều không phân giải thành một tệp hoặc thư mục hiện có, thì yêu cầu sẽ được chuyển hướng đến vị trí đã đặt tên để chuyển nó đến một máy chủ được ủy quyền
Để biết thêm thông tin, hãy xem hội thảo trực tuyến về Bộ nhớ đệm nội dung theo yêu cầu để tìm hiểu cách cải thiện đáng kể hiệu suất của trang web và tìm hiểu sâu về khả năng bộ nhớ đệm của NGINX Tối ưu hóa hiệu suất để phục vụ nội dungTốc độ tải là một yếu tố quan trọng để phục vụ bất kỳ nội dung nào. Thực hiện các tối ưu hóa nhỏ cho cấu hình NGINX của bạn có thể tăng năng suất và giúp đạt được hiệu suất tối ưu Kích hoạt server { root /www/data; location /images/ { try_files $uri /images/default.gif; } } 7Theo mặc định, NGINX tự xử lý việc truyền tệp và sao chép tệp vào bộ đệm trước khi gửi đi. Kích hoạt lệnh loại bỏ bước sao chép dữ liệu vào bộ đệm và cho phép sao chép dữ liệu trực tiếp từ bộ mô tả tệp này sang bộ mô tả tệp khác. Ngoài ra, để ngăn không cho một kết nối nhanh chiếm hoàn toàn quy trình worker, bạn có thể sử dụng lệnh để giới hạn lượng dữ liệu được truyền trong một lệnh gọi 8 (trong ví dụ này là tới 9 MB)
Kích hoạt location / { try_files $uri $uri/ $uri.html =404; } 0Sử dụng chỉ thị cùng với chỉ thị 1. Điều này cho phép NGINX gửi các tiêu đề phản hồi HTTP trong một gói ngay sau khi 8 lấy được đoạn dữ liệu
Kích hoạt location / { try_files $uri $uri/ $uri.html =404; } 3Lệnh này cho phép ghi đè thuật toán của Nagle, ban đầu được thiết kế để giải quyết vấn đề với các gói nhỏ trong mạng chậm. Thuật toán hợp nhất một số gói nhỏ thành một gói lớn hơn và gửi gói với độ trễ 4 ms. Ngày nay, khi phục vụ các tệp tĩnh lớn, dữ liệu có thể được gửi ngay lập tức bất kể kích thước gói. Sự chậm trễ cũng ảnh hưởng đến các ứng dụng trực tuyến (ssh, trò chơi trực tuyến, giao dịch trực tuyến, v.v.). Theo mặc định, lệnh được đặt thành 3, điều đó có nghĩa là thuật toán của Nagle bị vô hiệu hóa. Chỉ sử dụng lệnh này cho các kết nối cố định
Tối ưu hóa hàng đợi tồn đọngMột trong những yếu tố quan trọng là NGINX có thể xử lý các kết nối đến nhanh như thế nào. Nguyên tắc chung là khi một kết nối được thiết lập, nó sẽ được đưa vào hàng đợi “nghe” của ổ cắm nghe. Dưới tải bình thường, hàng đợi nhỏ hoặc không có hàng đợi nào cả. Nhưng khi tải cao, hàng đợi có thể tăng lên đáng kể, dẫn đến hiệu suất không đồng đều, kết nối bị gián đoạn và độ trễ tăng lên Hiển thị hàng đợi ngheĐể hiển thị hàng đợi nghe hiện tại, hãy chạy lệnh này Đầu ra có thể giống như sau, cho thấy rằng trong hàng đợi nghe trên cổng 6 có 7 kết nối không được chấp nhận so với số lượng tối đa được định cấu hình là 8 kết nối hàng đợi. Tình trạng này là bình thường 0Ngược lại, trong lệnh sau, số lượng kết nối không được chấp nhận ( 9) vượt quá giới hạn của 8. Điều này khá phổ biến khi một trang web có lưu lượng truy cập lớn. Để đạt được hiệu suất tối ưu, bạn cần tăng số lượng kết nối tối đa có thể xếp hàng chờ NGINX chấp nhận trong cả hệ điều hành và cấu hình NGINX của bạn 1Điều chỉnh hệ điều hànhTăng giá trị của tham số hạt nhân 1 từ giá trị mặc định của nó ( 8) lên một giá trị đủ cao để có một lượng lớn lưu lượng truy cập. Trong ví dụ này, nó đã tăng lên thành 3
Điều chỉnh NGINXNếu bạn đặt tham số kernel 5 thành giá trị lớn hơn 6, hãy thay đổi tham số 7 thành chỉ thị NGINX để khớp
Làm cách nào để thêm chỉ mục html vào NGINX?tệp html với Nginx. Để tuân theo quy trình cung cấp tệp HTML, chúng tôi sẽ tạo thư mục “www” bằng cách sử dụng lệnh “mkdir” . Lệnh “mkdir” được sử dụng trong các hệ thống dựa trên Linux như CentOS để tạo một hoặc nhiều thư mục. Bây giờ, nhấn “CTRL+O” để lưu nội dung mà chúng tôi đã thêm vào trong “chỉ mục.
Chỉ mục html trong NGINX ở đâu?Đây là chỉ số mặc định. trang html được phân phối với nginx trên Amazon Linux AMI. Nó nằm ở /usr/share/nginx/html .
Làm cách nào để sử dụng viết lại trong NGINX?Cú pháp của lệnh viết lại là. viết lại regex thay thế-url [flag]; regex. Biểu thức chính quy dựa trên PCRE sẽ được sử dụng để khớp với URI yêu cầu đến. url thay thế. Nếu biểu thức chính quy khớp với URI được yêu cầu thì chuỗi thay thế được sử dụng để thay đổi URI được yêu cầu.
Làm cách nào để xóa chỉ mục html trong NGINX?Cách xóa tiện ích mở rộng html trong Nginx . Chỉnh sửa cấu hình của trang web bằng lệnh sau. # vi /etc/nginx/site-available/example. com. conf. Ghi chú. Đường dẫn của tệp cấu hình có thể khác trong máy chủ của bạn. . Thêm mã sau. viết lại ^(/. *)\. . Khởi động lại dịch vụ Nginx để áp dụng các thay đổi. # systemctl khởi động lại nginx |