Điểm:0

Hai trang web Virtualhost không hoạt động cùng nhau trong Apache 2.4

lá cờ fr

Tôi đang chạy Apache 2.4 trong Ubuntu 18.04

Tôi gặp sự cố này khi tất cả các địa chỉ tôi nhập vào thanh trình duyệt đều được chuyển hướng đến một của hai trang web tôi đã định cấu hình (trong trường hợp này, bất cứ khi nào tôi nhập địa chỉ sẽ chuyển hướng đến trang khác, tôi được hiển thị trang web bên dưới jekyll chỉ có.)

Ví dụ:

  • đánh máy jekyll trên trình duyệt hiển thị cho tôi trang web jekyll, như mong đợi
  • đánh máy trang khác trên trình duyệt cũng cho tôi xem trang web jekyll, mặc dù có một VirtualHost khác đang nghe tên đó

Tôi có những hai trang web riêng biệt được định cấu hình dưới dạng Vhost trong /etc/apache2/sites-available (cả hai kích hoạt qua a2ensite)

  • jekyll.conf

    <VirtualHost *:80>
          DirectoryIndex index.html
          DocumentRoot /var/www/jekyll/_site
          LimitRequestFieldSize 48000
           <Directory />
                  Options FollowSymLinks
                  AllowOverride None
          </Directory>
          <Directory /var/www/jekyll/_site>
                  AllowOverride All
                  Order allow,deny
                  allow from all
          </Directory>
          <Directory /var/www/jekyll/_site/>
                  Order allow,deny
                  allow from all
          </Directory>
    
          ServerName jekyll
          ServerName http://jekyll
          ServerName http://localhost/jekyll
    
          ServerAdmin webmaster@localhost
    </VirtualHost>
    
  • other-site.conf

    <VirtualHost *:80>
          DirectoryIndex index.html
          DocumentRoot /var/www/other-site/_site
          LimitRequestFieldSize 48000
           <Directory />
                  Options FollowSymLinks
                  AllowOverride None
          </Directory>
          <Directory /var/www/other-site/_site>
                  AllowOverride All
                  Order allow,deny
                  allow from all
          </Directory>
          <Directory /var/www/other-site/_site/>
                  Order allow,deny
                  allow from all
          </Directory>
    
          ServerName other-site
          ServerName http://other-site
          ServerName http://localhost/other-site
    
          ServerAdmin webmaster@localhost
    
    </VirtualHost>
    

Tôi cũng đã thêm các mục này vào /etc/hosts để localhost được chuyển hướng đến từng trang web:

127.0.0.1 máy chủ cục bộ
127.0.0.1 máy chủ cục bộ/jekyll
127.0.0.1 localhost/trang web khác
127.0.0.1 jekyll
127.0.0.1 trang web khác
127.0.1.1 felipe-Inspiron-7559
Điểm:1
lá cờ in

Các Tên máy chủ thuộc tính trong các tệp cấu hình Apache của bạn không cần phải lặp lại, vì mỗi dòng tiếp theo sẽ thay thế các dòng trước đó.

Thay vào đó, bạn có thể sử dụng Tên máy chủ với Bí danh máy chủ như thế này:

Tên máy chủ jekyll
ServerAlias ​​jekyll.local *.jekyll *.jekyll.local

Lưu ý rằng điều này là phi logic:

127.0.0.1 máy chủ cục bộ/jekyll
127.0.0.1 localhost/trang web khác

Đây không phải là tên miền (hoặc tên miền phụ), mà là đường dẫn bên dưới máy chủ cục bộ. Kết quả là, chỉ máy chủ cục bộ sẽ được quan sát. Đây là lý do tại sao tôi không đưa nó vào cấu hình Apache như đã lưu ý ở trên.

Vì vậy, với điều này trong tâm trí, bạn có thể có số ba Các tệp cấu hình Apache:

⢠000-jekyll.conf

<VirtualHost *:80>
      ServerAdmin webmaster@localhost
      ServerName jekyll
      ServerAlias jekyll.local *.jekyll *.jekyll.local

      DirectoryIndex index.html
      DocumentRoot /var/www/jekyll/_site
      LimitRequestFieldSize 48000

      <Directory /var/www/jekyll/_site>
          Options FollowSymLinks
          AllowOverride All
          Order allow,deny
          Allow from all
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/jekyll-error.log
      CustomLog ${APACHE_LOG_DIR}/jekyll-access.log combined
</VirtualHost>

⢠001-khác.conf

<VirtualHost *:80>
      ServerAdmin webmaster@localhost
      ServerName other-site
      ServerAlias other-site.local *.other-site *.other-site.local

      DirectoryIndex index.html
      DocumentRoot /var/www/other-site/_site
      LimitRequestFieldSize 48000

      <Directory /var/www/other-site/_site>
          Options FollowSymLinks
          AllowOverride All
          Order allow,deny
          Allow from all
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/other-error.log
      CustomLog ${APACHE_LOG_DIR}/other-access.log combined
</VirtualHost>

⢠999-default.conf

<VirtualHost *:80>
      ServerAdmin webmaster@localhost
      ServerName localhost
      ServerAlias *.localhost * *.*

      DirectoryIndex index.html
      DocumentRoot /var/www
      LimitRequestFieldSize 48000

      <Directory /var/www>
          Options FollowSymLinks
          AllowOverride All
          Order allow,deny
          Allow from all
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/local-error.log
      CustomLog ${APACHE_LOG_DIR}/local-access.log combined
</VirtualHost>

Apache xử lý lưu lượng dựa trên thứ tự của các tệp cấu hình. Vì vậy, bất kỳ miền nào khớp với những miền được chỉ định trong 000-jekyll.conf sẽ được xử lý bởi tập tin đó. Nếu không tìm thấy kết quả phù hợp, thì 001-khác.conf sẽ được kiểm tra. Nếu không tìm thấy kết quả phù hợp, thì 999-default.conf sẽ được sử dụng. Lưu ý Bí danh máy chủ bên trong 999-default.conf tập tin và cách nó phụ thuộc vào các ký tự đại diện mở rộng. Điều này có nghĩa là nó sẽ được coi là lưu lượng truy cập không khớp với các tệp cấu hình đã xác định.

Ghi chú: Các tệp cấu hình Apache đã được sắp xếp hợp lý để loại bỏ các tệp không liên quan Danh mục chặn và yêu cầu mỗi máy chủ sử dụng nhật ký lỗi của riêng họ.

Felipe avatar
lá cờ fr
Cảm ơn, tôi đã thực sự làm rối các chỉ thị `ServerName` ở đó. Cảm ơn!

Đă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.