Ubuntu
Nginx 密碼保護整個埠號 8081
我正在嘗試用密碼保護我網站上的整個埠 - https://domain.com:8081>和<http://domain.com:8081
我嘗試通過在伺服器塊中添加以下內容來編輯 /etc/nginx/sites-enabled/domain.com.vhost 無濟於事(我從這個連結獲得,除了該連結是關於密碼保護目錄而不是埠):
location ^~ :8081 { auth_basic "Restricted Area"; auth_basic_user_file conf/htpasswd; }
我也試過“位置:8081”,但這也沒有用。
如何密碼保護埠 8081(或我想要的任何其他埠)?
如果有什麼不同,我使用的是 Ubuntu 14.04.1 LTS 和 Nginx 1.4.6。
謝謝。
$$ EDIT $$ 在實施 Nathan 的解決方案時,當轉到https://domain.com:8081/phpmyadmin/ (SSL) 時,它會提示輸入使用者名和密碼,但會給我一個“500 內部伺服器錯誤”頁面。以下是 Nginx 錯誤日誌中顯示的內容:
[crit] 3390#0: *154 open() "/etc/nginx/conf/htpasswd" failed (13: Permission denied), client: 152.35.52.108, server: domain.com, request: "GET /phpmyadmin/ HTTP/1.1", host: "domain.com:8081"
當轉到http://domain.com:8081/phpmyadmin/(非 SSL)時,它給了我“400 Bad Request The plain HTTP request was sent to HTTPS port”。錯誤日誌上沒有任何記錄;相反,Nginx 訪問日誌中出現以下內容:
"GET /phpmyadmin/ HTTP/1.1" 40.1" 400 279 "-" "[user agent]"
我假設您
server {
對此埠有一個單獨的塊……所以您只需保護該/
伺服器塊內的目錄:location / { auth_basic "Restricted Area"; auth_basic_user_file conf/htpasswd; }
所以:
server { listen 8081; server_name whateveryouwant; root /path/to/root/folder; location / { auth_basic "Restricted Area"; auth_basic_user_file conf/htpasswd; } }
我還沒有測試過這個,但它應該是這樣的。