參考: https://www.widlabs.com/article/mac-os-x-nginx-compile-symbol-not-found-for-architecture-x86_64
http://homeway.me/2015/07/10/rebuild-osx-environment/
http://www.jianshu.com/p/9523d888cf77
http://blog.sina.com.cn/s/blog_beebb7590102wwvv.html
下載nginx原始碼,openssl原始碼壓縮包
nginx下載地址:http://nginx.org/en/download.html openssl下載地址:https://www.openssl.org/source/
解壓nginx和openssl壓縮包,解壓之後的目錄如下:
進入到nginx目錄,使用configure命令,新增https和http2兩個模組,
./configure --with-http_ssl_module --with-http_v2_module --with-openssl=/usr/local/Cellar/openssl-1.0.2l
複製程式碼
執行上面的命令,在輸出的資訊中,你可能會看到以下資訊:
如果出現以上資訊,那麼在命令之後完成之後,需要進入到objs目錄,然後修改Makefile檔案。
在nginx目錄下:
cd objs
vim Makefile
複製程式碼
找到:
&& ./config --prefix=/usr/local/Cellar/openssl-1.0.2l/.openssl no-shared \
複製程式碼
這句,將config替換為:
Configure darwin64-x86_64-cc
複製程式碼
在nginx目錄下執行make命令
make
複製程式碼
如果沒有按照上一步中的提示修改Makefile檔案,則會出現以下錯誤:
正常編譯完成的輸出:
安裝
sudo make install
複製程式碼
安裝完成:
測試nginx安裝是否成功
啟動nginx
sudo /usr/local/nginx/sbin/nginx
複製程式碼
訪問:http:localhost
出現以上頁面說明nginx安裝成功了。
開啟https
要開啟nginx的https,需要生成SSL Key和CSR檔案。 如何生成這些檔案參考: http://www.jianshu.com/p/9523d888cf77
以下是生成檔案之後的目錄結構,這裡我將檔案生成在/usr/local/nginx目錄下:
然後將/user/local/nginx/conf/nginx.conf中,下面這段配置,去掉註釋並修改成以下內容:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/server.crt;
ssl_certificate_key /usr/local/nginx/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
複製程式碼
重新載入nginx,在/usr/local/nginx/sbin目錄下執行以下命令:
sudo ./nginx -s reload
複製程式碼
訪問https://localhost出現以下頁面說明配置成功。
開啟http2
到這一步之後,開啟nginx的http2非常簡單,只需要將上一步中https的配置中
listen 443 ssl;
複製程式碼
修改為:
listen 443 ssl http2;
複製程式碼
然後重新啟動下nginx,再次訪問https://localhost
效果圖: