Điểm:0

Cách thực hành tốt khi đặt máy chủ www so với máy chủ không phải www (Apache) là gì?

lá cờ us

Tôi đã thử định cấu hình một trang web không có www trên Ubuntu 18.04 với Apache 2.4 và tôi đã quản lý để mọi thứ hoạt động, tôi https://example.me hoạt động tốt. Nhưng mà, www.example.me tên miền phụ cũng đang hoạt động (vì tôi đã thêm ServerAlias). Các https://www.example.me cũng mở và không hiển thị chứng chỉ khiến tôi bối rối - nó không nên chuyển hướng đến https://example.com ? Thực hành tốt ở đây là gì - tôi có nên có cả tên miền phụ www và không phải www và một tệp conf riêng cho từng tên miền không? Tôi có nên chỉ sử dụng một trong số chúng với chuyển hướng vĩnh viễn không? Tại sao chuyển hướng không hoạt động ở đây, tôi có cần một số chỉ thị khác không?

Trân trọng.

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/mysite.me.crt
        SSLCertificateKeyFile /etc/apache2/ssl/mysite.me.key
        SSLCertificateChainFile /etc/apache2/ssl/mysite.me.crt
        DocumentRoot /var/www/html
        ServerName https://example.me
        ServerAlias www.example.me
        UseCanonicalName Off

        ProxyPreserveHost On
        ProxyRequests On
        ProxyVia On

        #ErrorLog /var/log/httpd/tomcat.error.log
        #CustomLog /var/log/httpd/tomcat.log combined

       <Proxy *>
               Order deny,allow
               Allow from all
       </Proxy>
        Include /etc/apache2/sites-available/redirect.conf

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me
        DocumentRoot /var/www/html
        UseCanonicalName Off
        Redirect permanent "/" "https://example.me/"

        ProxyPreserveHost On
        ProxyRequests On
        ProxyVia On

        #ErrorLog /var/log/httpd/tomcat.error.log
        #CustomLog /var/log/httpd/tomcat.log combined

       <Proxy *>
               Order deny,allow
               Allow from all
       </Proxy>
        Include /etc/apache2/sites-available/redirect.conf

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/

        #ProxyPass / http://localhost:8080/
        #ProxyPassReverse / http://localhost:8080/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
lá cờ in
Nếu bạn muốn biết tại sao chuyển hướng không hoạt động, bạn nên đưa tệp cấu hình chuyển hướng của mình vào câu hỏi.
c.mtd17 avatar
lá cờ us
Chuyển hướng đó chứa khoảng hai nghìn quy tắc chuyển hướng từ trang web cũ sang trang mới.
Điểm:0
lá cờ cn
Bob

Đầu tiên, xin lưu ý rằng chuyển hướng vĩnh viễn được lưu trữ bởi trình duyệt web của bạn, vì vậy nếu bạn đã thực hiện thay đổi và đang thử nghiệm một cấu hình đã sửa đổi, hãy thận trọng trước và/hoặc điều chỉnh phương pháp thử nghiệm của mình. Thêm về điều đó đây.


IMHO cấu hình của bạn cũng có nhiều lỗi và giả định không chính xác.


KHÔNG BẬT / CHO PHÉP yêu cầu proxy!!!

    ProxyPreserveHost Bật
    Yêu cầu proxy đang bật
    ProxyVia On
   <Ủy quyền *>
           Lệnh từ chối, cho phép
           cho phép từ tất cả
   </Ủy quyền>

Các chỉ thị trên là để tạo ra một chuyển tiếp proxy. Thậm chí tệ hơn, nó là mở proxy, có thể và sẽ bị lạm dụng bởi bất kỳ ai muốn ẩn địa chỉ IP của họ bằng máy chủ web của bạn.

Bạn không cần Yêu cầu proxy đang bật cho một đảo ngược Ủy quyềnProxy Pass hướng dẫn làm việc.

Hãy loại bỏ những.


Trong HTTP VirtualHost của bạn

Khi bạn chỉ có một Virtualhost, nó sẽ trở thành Virtualhost mặc định (cho cổng và địa chỉ đó). Mô tả dài hơn đây. Vì vậy, trừ khi bạn có các khối VirtualHost bổ sung được xác định, mục duy nhất này:

<Máy chủ ảo *:80>
        ServerAdmin [email protected]
        ServerName example.me

sẽ được sử dụng cho tất cả các yêu cầu http đơn giản, tức là cả hai http://example.me/some-page.htm?foo=bar , http://www.example.me , http://your.ip-address/ v.v. VirtualHost đó sẽ được sử dụng ngay cả khi không có quy định rõ ràng ServerAlias ​​www.example.com chỉ định www.example.com làm tên máy chủ thay thế cho Virtualhost cụ thể đó.

 Chuyển hướng vĩnh viễn "/" "https://example.me/"

Hướng dẫn rằng tất cả các yêu cầu sẽ dẫn đến phản hồi chuyển hướng đến https://example.me/ nói cách khác:

 http://example.me/some-page.htm?foo=bar ==> https://example.me/some-page.htm?foo=bar
 http://www.example.me ==> https://example.me/
 http://your.ip-address/bob/is.awe-some ==> https://example.me/bob/is.awe-some

Khi bạn chuyển hướng mọi thứ đi, thì cũng vô nghĩa khi có bất kỳ lệnh nào khác thường được dùng để hiển thị nội dung trong Virtualhost đó, vì vậy bạn có thể bỏ qua Tài liệuRoot, Proxy Pass v.v. và giữ một http Virtualhost đơn giản rất tối thiểu:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me
        UseCanonicalName Off

        Redirect permanent "/" "https://example.me/"

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Trong HTTPS VirtualHost của bạn, điều tương tự cũng đúng: nếu không có VirtualHost nào khác, nó sẽ là mặc định được sử dụng cho bất kỳ yêu cầu nào.

Tất nhiên, điều duy nhất là chứng chỉ TLS của máy chủ; chỉ hợp lệ đối với tên máy chủ được bao gồm trong đó, tên máy chủ khác sẽ dẫn đến lỗi/cảnh báo chứng chỉ không hợp lệ.

Bạn có thể sẽ cần kiểm tra nội dung của tệp bạn đưa vào đây:

Bao gồm /etc/apache2/sites-available/redirect.conf
c.mtd17 avatar
lá cờ us
Cảm ơn Bob vì lời giải thích chi tiết như vậy. Họ đang thực sự sử dụng proxy cho tomcat và một số ứng dụng khác...Tôi đã "kế thừa" máy chủ này từ người khác và tôi đang cố gắng xem đâu là phương pháp hay cũng như cách định cấu hình máy chủ đó và tại sao lại có cảnh báo chứng chỉ không hợp lệ với www.example.me. Bạn có thể nhìn thấy nó trong cấu hình này? Tôi có nên thêm một máy chủ ảo khác cho chứng chỉ www và liên kết ở đó không? Redirect.conf chứa khoảng hai nghìn quy tắc để chuyển hướng dữ liệu từ trang web cũ sang trang web mới...
lá cờ cn
Bob
Bạn không cần bật proxy chuyển tiếp khi sử dụng proxy ngược hoặc ajp

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.