Ghi đè cấu hình nginx http mặc định mà không thay đổi nginx.conf mặc định


14

Ý định của tôi : Tôi muốn ghi đè cấu hình mặc định được xác định trong /etc/nginx/nginx.conf(trong debian 8). Ý tưởng là giữ cho tệp này hoàn toàn không bị ảnh hưởng để dễ dàng cập nhật hệ thống trong tương lai và có thể nhận được các thay đổi mới nhất cho các tùy chọn tôi không ghi đè.

Những gì tôi đã làm : Tôi đã tạo một cấu hình tùy chỉnh /etc/nginx/conf.d/giống như cách tôi đã làm cho một số dịch vụ debian khác.

Vấn đề : Tuy nhiên, dường như không thể ghi đè một số cấu hình, vì tôi nhận được lệnh "X" là lỗi trùng lặp . Nginx dường như không hỗ trợ ghi đè cấu hình giống như các dịch vụ khác.

Câu hỏi : Có cách nào để ghi đè và thêm tùy chọn mới vào ngữ cảnh nginx http mà không nhận được lệnh bị trùng lặp không? Hay tôi nên từ bỏ hoàn toàn ý tưởng và hung hăng nginx.conf?

Rất cảm ơn vì sự giúp đỡ của bạn.

Câu hỏi tương tự này không thực sự giải quyết được vấn đề của tôi, vì tôi cũng muốn kiếm lợi nhuận từ các tùy chọn mặc định nginx tự động đặt cho tôi (ví dụ worker_processes auto;)


1
Bạn có thực sự bắt đầu sử dụng Debian không? Cấu hình nginx của họ khá khác so với ngược dòng và điều này có thể không thực hiện được.
Michael Hampton

Đúng. Tôi có một số máy chủ sản xuất đã chạy trên Debian và đây chỉ là về việc thay đổi apache2 thành nginx. Vì vậy, những gì bạn đang nói với tôi là trong phân phối khác, những gì tôi đã thử có thể đang làm việc? Có khả năng nó sẽ hoạt động trong tương lai với Debian không?
Gui-Don

Đó chắc chắn có thể rằng Debian sẽ xuất xưởng một cấu hình nginx hợp lý hơn trong tương lai. Bạn cũng có thể tạo riêng của bạn.
Michael Hampton

Câu trả lời:


2

Hay tôi nên từ bỏ hoàn toàn ý tưởng và tung hoành nginx.conf?

Vâng, bạn nên.

Những thay đổi duy nhất từng được thực hiện bởi các nhà bảo trì gói là một trong hai

  • Mặc định hợp lý hơn cho các tham số bạn nên tự thiết lập một thời gian ngắn trước đây
  • #ví dụ -prefixed sẽ không được sử dụng mà không có hành động của bạn nào

Trong quá khứ, những thay đổi đáng kể duy nhất là ssl_protocols, ssl_prefer_server_ciphersworker_processes. Bạn nên ghi đè những năm đó trước khi đặt chúng trong gói deb có vẻ như là một điều hợp lý để làm cho các nhà bảo trì gói.

Trước đây, sự giảm thiểu thực sự duy nhất có thể được đưa ra với nginx.conf trên toàn hệ thống, thêm vào max_ranges 1;CVE-2017-7529 không được gửi bởi bất kỳ phân phối nào tôi biết, họ đã phát hành bản sửa lỗi cho lỗ hổng của mình trước hầu hết các quản trị viên áp dụng giảm thiểu.

Bạn không thể mong đợi các nhà bảo trì gói sẽ nhanh hơn bạn trong việc thêm các thay đổi có khả năng phá vỡ, do đó bạn có thể sẽ không thu được lợi nhuận từ việc kế thừa cấu hình của họ. Người bảo trì gói không thể biết những gì tốt nhất cho hàng triệu trường hợp sử dụng ngoài kia và do đó sẽ cực kỳ bảo thủ trong việc thay đổi giá trị ở đây.

Miễn là hệ thống sao lưu của bạn hoạt động chính xác, có thể vẫn nên giữ cấu hình đúng vị trí, do đó apt sẽ hỏi bạn trong quá trình cập nhật tương tác làm thế nào để hành động thay đổi tệp bảo trì.


Làm thế nào để bạn tìm ra những thay đổi đã được áp dụng giữa các phiên bản khác nhau? Bạn có thể so sánh tất cả các phiên bản gói có sẵn (chưa được xác minh, tải xuống không an toàn) như thế này:

(cd "$(mktemp -d)"; rmadison --url=debian nginx-common | awk '{print $3}' | while read a; do curl "http://ftp.debian.org/debian/pool/main/n/nginx/nginx-common_${a}_all.deb" | dpkg -x - x${a}; done; for a in x*/etc/nginx/nginx.conf; do [ -z "$la" ] && la="$a" && continue; diff -wus "$la" "$a";la="$a" ; done; pwd)

Lịch sử thực sự mang lại thông tin có giá trị trong trường hợp này, vì vậy cảm ơn vì câu trả lời rất tốt này. Tôi hiểu quan điểm của bạn, xem xét tầm quan trọng của nginx trên toàn thế giới, rất khó có thể thay đổi quan trọng sẽ xảy ra trong vòng đời của các máy chủ HTTP của tôi.
Gui-Don

1
Tôi không đồng ý với điều này. Mặc dù không có khả năng xảy ra sự cố do thay đổi của người bảo trì, nhưng việc cấu hình riêng biệt sẽ giúp giảm chi phí bảo trì cũng như có cấu trúc tốt hơn và di chuyển dễ dàng hơn đến các máy chủ khác nhau, sẽ cần phải xảy ra.
xZero

@xZero Bạn đang nói rằng sao chép tệp vào một vị trí khác sẽ giúp giảm chi phí bảo trì? Nếu vậy thì làm sao vậy?
lắng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.