一、引言
當(dāng)我們的Linux服務(wù)器上當(dāng)中發(fā)布了web項(xiàng)目,有時(shí)候需要配置一個(gè)SSL證書,這樣表示你這個(gè)網(wǎng)站還比較正式哈哈哈。當(dāng)我把證書下載好,把nginx.conf配置好,簡(jiǎn)直就是萬(wàn)事俱備,只欠重啟。結(jié)果一重啟,duang~出錯(cuò)了。
nginx:[emerg]unknown directive ssl,就是這個(gè)錯(cuò)誤提示
因?yàn)槲覀兣渲眠@個(gè)SSL證書需要引用到nginx的中SSL這模塊,然而我們一開始編譯的Nginx的時(shí)候并沒有把SSL模塊一起編譯進(jìn)去,所以導(dǎo)致這個(gè)錯(cuò)誤的出現(xiàn)。
二、錯(cuò)誤解決步驟
既然在安裝的時(shí)候沒有編譯ssl,難道把nginx卸載重新安裝一次?不不不,我們只需要在原有的基礎(chǔ)上添加ssl模塊就行了。
步驟一:我們先來(lái)到當(dāng)初下載nginx的包壓縮的解壓目錄,如果你是看小編寫的教程安裝的,解壓目錄應(yīng)該在“/usr/loacl/src/”,絕大多數(shù)應(yīng)該都是在這個(gè)目錄下的,已經(jīng)是一種規(guī)范了。
步驟二:來(lái)到解壓目錄下后,按順序執(zhí)行一下命令:
命令1、./configure --with-http_ssl_module //重新添加這個(gè)ssl模塊
注意如果沒有出現(xiàn)錯(cuò)誤,則直接看命令2即可
執(zhí)行以上一條命令出現(xiàn)這個(gè)錯(cuò)誤(./configure:錯(cuò)誤:SSL模塊需要OpenSSL庫(kù)。),原因是因?yàn)槿鄙倭薕penSSL,那我們?cè)賮?lái)安裝一個(gè)即可執(zhí)行:yum -y install openssl openssl-devel
等待OpenSSL的安裝完成后,再執(zhí)行./configure ,最后在執(zhí)行” 命令1" 即可。
命令2、執(zhí)行make命令,但是不要執(zhí)行make install,因?yàn)閙ake是用來(lái)編譯的,而make install是安裝,不然你整個(gè)nginx會(huì)重新覆蓋的。
命令3、在我們執(zhí)行完做命令后,我們可以查看到在nginx解壓目錄下,objs文件夾中多了一個(gè)nginx的文件,這個(gè)就是新版本的程序了。首先我們把之前的nginx先備份一下,然后把新的程序復(fù)制過(guò)去覆蓋之前的即可。
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
命令4,最后我們來(lái)到Nginx安裝目錄下,來(lái)查看是否有安裝ssl模塊成功。執(zhí)行./sbin/nginx -V即可看到如下圖:
![](http://img.jbzj.com/file_images/article/202011/20201130105253381.png?2020103010537)
三、最后如果出現(xiàn)如上圖,則SSL模塊添加到Nginx的編譯好了,這次重新啟動(dòng)則OK了。
![](http://img.jbzj.com/file_images/article/202011/20201130105253382.png?2020103010537)
如果重新啟動(dòng)nginx報(bào)如下錯(cuò)誤:
nginx 報(bào)錯(cuò) : [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
將 ssl on改為listen 443 ssl。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。