原文連結 https://bysocket.com/nginx-unexpected-end-of-file-expecting-in-key-file/
一、Nginx unexpected end of file 問題
透過 letsencrypt 申請證書後,預設伺服器安裝了 Nginx 1.8 發現,在預設的 /etc/nginx/sites-enabled/default 內容配置 SSL 的 site.com.key 後。重啟 Nginx 出現一下錯誤:
nginx: [emerg] unexpected end of file, expecting ";" or "}" in /etc/nginx/sites-enabled/site.com.key:27
二、定位和解決
上述透過日誌發現了這個問題,日常谷歌下,發現都不是在這個問題。普遍的是 conf 檔案,少了 ";" or "}" 結尾。我這個提示最關鍵的是說 SSL key 檔案裡面存在這個問題,其實 SSL 生成檔案沒錯。
後來發現,原來是預設 nginx 的問題。
解決方法:
將 /etc/nginx/sites-enabled/default 裡面配置 server 遷移到主配置檔案 /etc/nginx/nginx.conf
原因:
預設 nginx 有如下配置:
- 主配置檔案 /etc/nginx/nginx.conf
- include 了預設 server 內容檔案 /etc/nginx/sites-enabled/default
但預設 server 相關檔案內寫入 SSL 相關資訊會上述的錯誤