nginx thiếu thư mục trang web có sẵn


188

Tôi đã cài đặt Nginx trên Centos 6 và tôi đang cố gắng thiết lập máy chủ ảo. Vấn đề tôi gặp phải là dường như tôi không thể tìm thấy /etc/nginx/sites-availablethư mục.

Có một cái gì đó tôi cần phải làm để tạo ra nó? Tôi biết Nginx đang hoạt động vì tôi có thể duyệt qua nó.


Nếu bạn muốn tách một tệp cấu hình lớn thành các tệp nhỏ hơn, bạn có thể sử dụng tập lệnh của tôi để phân tách tệp đó: stackoverflow.com/a/38635284/1069083
rubo77

Câu trả lời:


354

Chà, tôi nghĩ rằng nginx tự nó không có trong thiết lập của nó, bởi vì gói duy trì Ubuntu thực hiện nó như một quy ước để bắt chước thiết lập apache của Debian. Bạn có thể tự tạo nó nếu bạn muốn mô phỏng cùng một thiết lập.

Tạo /etc/nginx/sites-available/etc/nginx/sites-enabledsau đó chỉnh sửa httpkhối bên trong /etc/nginx/nginx.confvà thêm dòng này

include /etc/nginx/sites-enabled/*;

Tất nhiên, tất cả các tệp sẽ ở bên trong sites-availablevà bạn sẽ tạo một liên kết tượng trưng cho chúng bên trong sites-enabledcho những người bạn muốn kích hoạt.


23
Họ hàng RedHat (ví dụ Fedora và Centos) không có tính năng này ngoài hộp như Debian / Ubuntu. Thật dễ dàng để sao chép, như @Mohammad nói, tuy nhiên việc không có các mặc định đẹp là khó hiểu đối với người mới.
MGP

36
Chúa ơi, tôi không thể nói tôi đã làm bao nhiêu tìm kiếm để tìm ra điều này. Tôi đang sử dụng Amazon Linux AMI phát hành 2014.03. Các thư mục này không được tạo tự động nếu bạn cài đặt nginx từ các tệp vòng / phút (cho dù nginx 1.6.2 hoặc nginx 1.7.5) nhưng nhiều ví dụ cấu hình nginx tham chiếu những điều này ... khiến bạn tự hỏi liệu nginx của bạn đã được cài đặt đúng hay chưa.
so_mv

1
Cảm ơn, làm thế nào về symlink? Cú pháp của tôi có đúng không? Nó dường như không được tìm thấy bởi tuyên bố bao gồm.
số không và

7
Tôi đã sửa nó, bắt đầu làm mới và tạo liên kết sym như thế này: sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confkhông hiểu tại sao đường dẫn đầy đủ lại tạo ra sự khác biệt: /
số không và

1
Cảm ơn bạn rất nhiều. Được xây dựng nginx từ nguồn và không nhận ra Ubuntu đã làm điều này.
Sean Norwood

66

Nếu bạn muốn một cách tiếp cận trực tiếp hơn, một phương pháp KHÔNG gây rối với liên kết tượng trưng giữa /etc/nginx/sites-available/etc/nginx/sites-enabled, hãy làm như sau:

  1. Xác định vị trí tệp nginx.conf của bạn. Có khả năng tại/etc/nginx/nginx.conf
  2. Tìm khối http.
  3. Ở đâu đó trong khối http, hãy viết include /etc/nginx/conf.d/*.conf;Điều này bảo nginx kéo bất kỳ tệp nào trong conf.dthư mục kết thúc .conf. (Tôi biết: thật kỳ lạ khi một thư mục có thể có .trong đó.)
  4. Tạo conf.dthư mục nếu nó không tồn tại (theo đường dẫn trong bước 3). Hãy chắc chắn để cung cấp cho nó quyền / quyền sở hữu. Có khả năng root hoặc dữ liệu www.
  5. Di chuyển hoặc sao chép các tệp cấu hình riêng biệt của bạn (giống như bạn có /etc/nginx/sites-available) vào thư mục conf.d.
  6. Tải lại hoặc khởi động lại nginx.
  7. Ăn một cây kem ốc quế.

Bất kỳ .conftệp nào bạn đặt vào conf.dthư mục từ đây trở đi sẽ hoạt động miễn là bạn tải lại / khởi động lại nginx sau đó.

Lưu ý: Bạn có thể sử dụng đồng thời phương thức + conf.dvà nếu muốn. Tôi muốn kiểm tra trên hộp dev của tôi bằng cách sử dụng . Cảm thấy nhanh hơn so với liên kết tượng trưng và hủy liên kết.sites-enabledsites-availableconf.d


13
Điểm của "mớ hỗn độn" liên kết tượng trưng là bạn có thể bảo vệ các tệp cấu hình và vẫn vô hiệu hóa các máy chủ ảo rất dễ dàng. Nếu bạn sử dụng phương pháp của mình, bạn phải di chuyển các tệp ra khỏi conf.d khi bạn muốn vô hiệu hóa một trang web mà tôi không nghĩ là ít lộn xộn hơn là thuận tiện xóa một liên kết tượng trưng.
bviktor

@bviktor Mình nghe ya. Tôi thực sự sử dụng cả hai cách. Tôi chỉ thấy nó tẻ nhạt hơn [khi kiểm tra cấu hình] để nảy qua lại giữa các thư mục có sẵn trên trang và có sẵn trang. Trong sản xuất của tôi, tôi đang lên kế hoạch sử dụng symlinking.
elbowlobstercowstand

1
Vâng, tôi đồng ý, việc gõ ln -s ../sites-available/...khá tẻ nhạt khi nhanh chóng kiểm tra công cụ, nhưng về lâu dài, nó rất tiện dụng và dễ quản lý hơn :)
bviktor

@bviktor Rất cảm ơn vì khả năng có thể nhấn tab trong thiết bị đầu cuối khi viết tên đường dẫn và xem tự động hoàn thành. Tôi đã không biết về điều đó trong một thời gian cho đến khi tôi xem video với một người nào đó sử dụng nó. Tôi nghĩ rằng họ gõ vào 300 wpm! Sau đó tôi bắt được. :)
elbowlobstercowstand

12
@bvktor Chỉ các trang web có phần mở rộng .conf mới được đưa vào. Nếu bạn không muốn một trang web được kích hoạt, chỉ cần thêm tiện ích mở rộng được bật vào tệp cấu hình trang web. Đó là quy ước tiêu chuẩn trong CentOS / Apache và nó cũng sẽ áp dụng cho Nginx.
SenG
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.