解決在Ubuntu Server 22.04安裝NGINX失敗(2)
在前一篇分享之後,收到社團朋友的提醒,原因是主機停用 IPv6 造成繫結失敗,不是我說的那樣,這要快點再寫一篇釐清一下。
其實安裝當下,提供的日誌寫的很清楚,是自己沒用心看。
nginx[1695]: nginx: [emerg] socket() [::]:80 failed (97: Unknown error)
在前一篇分享之後,收到社團朋友的提醒,原因是主機停用 IPv6 造成繫結失敗,不是我說的那樣,這要快點再寫一篇釐清一下。
其實安裝當下,提供的日誌寫的很清楚,是自己沒用心看。
nginx[1695]: nginx: [emerg] socket() [::]:80 failed (97: Unknown error)
第一次在 Ubuntu Server 22.04 安裝 NGINX,參考官方教學與另一篇都覺得寫的不錯,反正就是 apt install nginx
就結束了。看到應該這裡就知道,事情沒那麼簡單,因為參考了一些文件,安裝的都不是很順利,因此記下此筆記一篇。
官方教學與另一篇我覺得都寫的不錯:
但執行起來怎麼問題一堆:
前2集(1)(2),前同事在 FB 上給了很多指教,受益非淺(術業有專攻),其中有個 moz://a SSL Configuration Generator 好工具,真的是相見恨晚,非常值得介紹給大家。
前一篇,在取得 NGINX 可用的憑證格式與套用後,就開始以 HTTPS 來連線與測試。但 nginx.conf
裡還有許多安全性設定值可以調整。
故事是這樣,我們需要為NGINX(for Windows)服務加上 HTTPS 的 SSL/TLS 憑證。公司提供的是 .pfx
檔(PFX容器形式的憑證,PKCS#12格式),通常在 Windows Server/IIS Server 上使用沒什麼難度,一、匯入 .pfx
到 Windows Server;二、到 IIS Server 設定匯入 SSL/TLS 憑證。後來研究發現,NGINX 無法直接使用 .pfx
檔來設定,也是說需要轉換格式後才能提供 Linux Based 的應用程式來使用。
當我們啟用 nginx.exe 之後,需要透過 -s signal
來與 nginx.exe 溝通。
nginx.exe -s signal
signal 值可以是:
nginx.conf 是整個 NGINX 核心,管理者透過 nginx.conf 來調整 NGINX 運作行為。
在測試階段,最常用的是
nginx.exe -s reload
來重新載入 nginx.conf。
nginx.conf 最基本組成語法:
<section> {
<directive> <parameters>;
}
注意,每一行指令都需要由分號(;)結束。例如:events
設置:
events {
worker_connections 1024;
}
最近在整合 NGINX 的 Reverse Proxy 時碰到一些 Windows Authentication 整合的問題,花費不少時間,特此筆記之。
一般的 Web App 在 NGINX Reverse Proxy 作用下都能正常運作,但內部網站有多許使用 Windows Authentication 功能來進行 SSO,例如,在 ASP.NET MVC 或 ASP.NET Core 的 View Page,只需透過一行 @User.Identity.Name
即可觸發瀏覽器進行身分驗證功能,在網域運作環境下,是不可多得好物。當然,你找網路可以找到許多教你設 proxy_set_header
的文章或討論: