Apache-2.2
為什麼我在嘗試訪問視圖源時收到 403:https://ccachicago.pragmatometer.com/admin/static/css/base.css?
我一直在嘗試不擇手段地在 Apache SSL VirtualHost 中提供 /admin/static/ 服務,最好是由 Apache(它將 SSL 流量轉發到 Django Gunicorn 實例),或者禁止 Apache,至少 Gunicorn 提供服務靜態內容,而我正在研究更好的解決方案。
我得到一個 Apache 服務的 403,我檢查過的所有權限都表明 /usr/lib/python2.7/dist-packages/django/contrib/admin/static/ 目錄(以及需要的父目錄)是執行伺服器的使用者可讀和可執行。
你能在下面的 VirtualHost 中看到任何錯誤,這可以解釋為什麼 Apache 沒有將有問題的目錄作為別名目錄提供服務嗎?
<VirtualHost *:443> ServerName ccachicago.pragmatometer.com Alias /media/ "/home/jonathan/ccachicago/media/" <Directory "/home/jonathan/ccachicago/media/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> Alias /admin/static/ "/usr/lib/python2.7/dist-packages/django/contrib/admin/static/" <Directory "/usr/lib/python2.7/dist-packages/django/contrib/admin/static/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> ProxyPass /media/ ! ProxyPass /admin/static/ ! ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ SSLEngine On SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/ssl.key ServerAdmin CJSHayward@PObox.com </VirtualHost>
- 更新 -
如果我註釋掉拒絕/允許行,我會得到相同的 403 錯誤頁面。日誌文件有:
[Mon Jan 27 21:52:34.297099 2014] [authz_core:error] [pid 4818] [client 205.197.161.146:44895] AH01630: client denied by server configuration: /usr/lib/python2.7/dist-packages/django/contrib/admin/static/css
所以我的配置中的某些東西顯然不起作用;我現在有:
<VirtualHost *:443> ServerName ccachicago.pragmatometer.com Alias /media/ "/home/jonathan/ccachicago/media/" ErrorLog /var/log/apache2/error.log <Directory "/home/jonathan/ccachicago/media/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> Alias /admin/static/ "/usr/lib/python2.7/dist-packages/django/contrib/admin/static/" <Directory "/usr/lib/python2.7/dist-packages/django/contrib/admin/static/"> Options Indexes MultiViews FollowSymLinks AllowOverride None #Order deny,allow #Deny from all #Allow from 127.0.0.0/255.0.0.0 ::1/128 #Allow from 0.0.0.0 ::1/128 #Allow from all </Directory> ProxyPass /media/ ! ProxyPass /admin/static/ ! ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ SSLEngine On SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/ssl.key ServerAdmin CJSHayward@PObox.com </VirtualHost>
您只允許從 127.0.0.0 和 ::1 訪問。您確定您正在通過這些地址訪問該網站嗎?我會首先禁用訪問限制,然後看看會發生什麼。
您的日誌片段顯示您沒有從 127.0.0.1 或 ::1 訪問伺服器,因此您設置的訪問限制在生效時將拒絕訪問。