Đã vô hiệu hóa tập tin cấu hình trang apache 000-default.conf, nhưng nó vẫn có vẻ hoạt động. Tại sao?


7

Tôi đã thêm một tập tin mysite.conf vào thư mục trang web apache có sẵn với các cài đặt chính xác, sau đó kích hoạt nó và tải lại apache, và nó không hoạt động. Tôi muốn tắt cấu hình trang mặc định như được định nghĩa trong 000-default.conf để xem điều đó có khắc phục được sự cố không.

Để đạt được điều này tôi đã chạy:

cd /etc/apache2/sites-available/
sudo a2dissite 000-default.conf
service apache2 reload

và mọi thứ dường như hoạt động tốt, tuy nhiên khi tôi tải mysite.com trong trình duyệt của mình, tôi vẫn thấy tệp index.html mặc định trong / var / www / html / (như được chỉ ra trong 000-default.conf) mặc dù tôi đã kích hoạt tệp cấu hình trang web cho miền của tôi như sau:

<VirtualHost *:80>
        ServerName www.mysite.com
        ServerAlias mysite.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/mysite.com

        ErrorLog ${APACHE_LOG_DIR}/error_mysite.log
        CustomLog ${APACHE_LOG_DIR}/error_access_mysite.log combined

</VirtualHost>

Tôi có một tập tin /var/www/mysite.com/index.php mà tôi mong đợi nên được tải thay thế.


1
Được chứ. Tại sao bạn lại nhắn tin với 000-default.conf ?? Bạn đang cố làm gì vậy? Bạn có một trang web để triển khai hoặc nhiều hơn một? Không nên làm rối trang web mặc định của bạn. Nó ít nhất là một trang web bắt tất cả được sử dụng để bảo mật. Bạn thực sự muốn làm gì ????
Closnoc

@closetnoc Một trang web hiện tại, nhưng muốn sử dụng tên miền phụ hoặc tên miền khác để có nhiều hơn một. Tôi về cơ bản chỉ muốn một tài liệu khác nhau cho mỗi trang web. Tôi nghĩ rằng nó có thể là một yêu cầu để vô hiệu hóa 000-default.conf để làm cho trang web của tôi hoạt động với tài liệu đã cho, nhưng từ những gì bạn nói có lẽ là không.
Rất bất thường

1
Bạn KHÔNG muốn tắt 000-default.conf. Bạn đang truy cập máy chủ web như thế nào? Thông qua một tên miền? Hoặc địa chỉ IP hoặc tên máy.
Closnoc

@closetnoc có, thông qua tên miền mysite.com của tôi, nhưng nó đang tải /var/www/html/index.html chứ không phải /var/www/mysite.com/index.php
Rất bất thường vào

Đó là bởi vì không có tệp conf cho mysite.com trong các trang web có sẵn, tôi chắc chắn. Trang web 000-default.conf là tất cả cho bất kỳ yêu cầu nào mà máy chủ không có tệp cấu hình cho. Nếu bạn có một tên miền và nó đang được giải quyết ổn thỏa, yêu cầu phải dành cho tên miền. Nếu không có cấu hình cho tên miền đó, thì nó sẽ sử dụng mặc định đó là những gì bạn muốn . Đó là một biện pháp an ninh. Bạn sẽ cần tạo một tệp cấu hình cho trang web của bạn.
Closnoc

Câu trả lời:


9

Cũng như một vấn đề giải thích cho người dùng trong tương lai.

Tệp 000-default.conf của bạn là một trang web bắt tất cả và nên để yên. Nó là tốt cho an ninh. Nó có thể gây bực bội khi một cấu hình trang web không hoạt động và trang web mặc định được phục vụ. Tôi hiểu rồi. Tuy nhiên, hãy để nó một mình. Nhiều người không biết tại sao trang web mặc định tồn tại. Đây là một chút giải thích.

Khi Apache nhận được một yêu cầu, nó cố gắng khớp nó với một cấu hình mà nó biết. Vì vậy, bất kỳ yêu cầu nào cho example.com sẽ tìm kiếm một example.com với một cấu hình phù hợp. Nếu không có kết quả trùng khớp, trang web 000-default.conf được sử dụng. Nếu một yêu cầu cho bogussite.com được nhìn thấy và nó không tồn tại trên máy chủ, thì tệp 000-default.conf được cung cấp. Điều này đặc biệt hữu ích cho các yêu cầu chỉ địa chỉ IP. Và tất cả chúng ta đều ghét những thứ đó !! Tuy nhiên, nếu có lỗi trong example.com, vẫn có thể trang web 000-default.conf được cung cấp đưa ra lý do chính xác tại sao và làm thế nào cấu hình bị lỗi một chút khó hiểu và rất bực bội.

Tôi đã đưa ra một số cấu hình mẫu từ một máy chủ trực tiếp tại đây: Cấu hình Virtualhost: định tuyến và sử dụng ký tự đại diện

Đẩy đến xô, những luôn luôn nên làm việc. Bạn có thể cắt và dán chúng chính xác sau đó thực hiện các thay đổi cần thiết hoặc sửa đổi (các) tệp hiện có của bạn. Lựa chọn của bạn Rất dễ để lác mắt về điều này vì vậy hãy cẩn thận. Chúng tôi đã làm tất cả để bạn không cô đơn.

@HighlyIruity làm cho điểm này trong nhận xét của anh ấy nên sống.

Bạn luôn có thể kiểm tra cấu hình trong phiên shell bằng ...

$ apachectl configtest

... sẽ giúp khắc phục sự cố.

Bạn sẽ cần tạo (các) trang web mới / bổ sung trong /etc/apache2/site-available/thư mục của mình bằng định dạng tệp tương tự example.com.conf. Bạn cũng sẽ muốn đảm bảo rằng /etc/apache2/apache2.confInclude sites-enabled/hoặc một cái gì đó tương tự như một trong những dòng cuối cùng.

Khi thay đổi bất kỳ tệp cấu hình nào được thực hiện, Apache phải được khởi động lại. Apache lưu cấu hình trong bộ nhớ và các thay đổi sẽ không được nhìn thấy cho đến khi được khởi động lại. Trong những dịp hiếm hoi, khởi động lại không hoạt động như mong đợi. Trong trường hợp này, để loại trừ vấn đề này, bạn sẽ muốn khởi động lại máy chủ của mình. Rất có thể các cấu hình hợp lệ không được nhìn thấy khi khởi động lại. Không chắc chắn lý do tại sao. Tuy nhiên, với khởi động lại, Apache buộc phải lưu lại bộ đệm cấu hình. Nó giống như nhận được một cái búa lớn hơn. Cũng đáng để thử đôi khi.


2
Cảm ơn rất nhiều về sự giúp đỡ của bạn! Khởi động lại máy chủ đã sửa nó trong trường hợp của tôi (khi khởi động lại apache thì không). Cũng đáng lưu ý đối với những người dùng khác rằng lệnh apachectl configtestnày rất hữu ích để phát hiện lỗi cấu hình apache (sử dụng nó trước khi tải lại / khởi động lại apache).
Rất bất thường

Tôi vui mừng mọi thứ đã làm việc ra. Đó chỉ là vấn đề sử dụng búa đúng cách !!
Closnoc

@HighlyIruity Tôi đã thêm đề xuất của bạn vào câu trả lời ... đó là một câu hỏi hay thực sự nên tồn tại lâu hơn bất kỳ bình luận nào có thể biến mất theo thời gian. Cảm ơn! Tôi quên mất tùy chọn này và đi ra lệnh hầu hết thời gian.
Closnoc

BTW- Tôi vừa đọc hồ sơ của bạn. Tôi nghĩ rằng điều này có thể được quan tâm: careers.stackoverflow.com Chỉ trong trường hợp bạn không biết ... Chúc mừng !!
Closnoc

Vậy điều gì sẽ xảy ra nếu tôi chạy apache của mình trên một máy chủ cục bộ trong mạng, truy cập nó qua IP, không muốn gây rối với những 000-default.confgì bạn đang khuyên, nhưng vẫn làm cho nó điều hướng trình duyệt đến IP của máy chủ cục bộ sẽ hiển thị một trong các máy chủ ảo thay thế ( example.conf) thay vì máy chủ mặc định? Tôi nghĩ rằng tôi đang tìm kiếm một cái gì đó giống như một DefaultVirtualHost = ...chỉ thị, nhưng không chắc nó tồn tại hay làm thế nào khác để đi nếu. Hiện tại, tôi đã đưa example.confvào cổng 8080, do đó, việc xử lý IP đó sẽ đưa tôi đến trang tôi muốn. Không phải là một giải pháp tốt đẹp mặc dù.
domsson

2

Tôi đồng ý với người dùng 'Closnoc', người đã trả lời tại [2015-Aug-2 00: 24: 36Z] để trả lời cho bài đăng gốc có nội dung " 000-default.confTrang web này là tất cả cho bất kỳ yêu cầu nào mà máy chủ không có tệp cấu hình cho ".

Và, tôi nghĩ rằng chúng ta có thể sử dụng 'trang web bắt tất cả' như là phương sách cuối cùng để bảo vệ và tăng cường bảo mật tổng thể.

Điều tôi đã cố gắng vẫn là cho phép trang web ' 000-default.conf' được kích hoạt, nhưng làm cho cấu hình của nó hơi khác một chút để liên tục bỏ TẤT CẢ các yêu cầu KHÔNG gửi phản hồi và sau đó ĐÓNG ngay KẾT NỐI cho tất cả các quyền truy cập bị cấm, để không có gì được phản hồi / tiết lộ cho người yêu cầu cố gắng.

Đây là 000-default.conftập tin ' ' của tôi , để bạn tham khảo:

<VirtualHost *:80>
    # ServerName whatsoever
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/default_error.log
    CustomLog ${APACHE_LOG_DIR}/default_access.log combined

    <Location />
        <RequireAny>
            # Example for 'Block all':
            # Require ip 0.0.0.0/32
            Require all denied

            # Example for 'White list':
            # Require ip 172.217.24.37/32
        </RequireAny>
    </Location>

    SecRuleEngine On
    SecRule RESPONSE_STATUS "403" "phase:4,id:1,drop"
</VirtualHost>

Được nhắc nhở cài đặt ModSecuritymô-đun '' để các chỉ thị ' SecRuleEngine' và ' SecRule' có thể được chấp nhận. Nếu bạn cần hỗ trợ và tham khảo thêm về chủ đề của ModSecuritymô-đun '', hãy đề nghị bạn tìm kiếm trên Internet.

Hy vọng những điều trên giúp!

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.