這周的主要任務,是對項目進行收尾工做並上線,完整的體驗了一下項目的上線過程,總的來講仍是頗有收穫的,選取其中的nginx配置證書來寫寫。html
證書配置的第一步,固然得有證書才行,這一步就不說了。nginx
通常來講,只須要修改兩個參數ubuntu
ssl_certificate 和 ssl_certificate_key修改爲你的證書所做的位置。
ssl_certificate對應的文件多是.pem
ssl on 已被棄用,用listen……ssl代替
修改完之後,基本的配置就完成了,重啓nginxcentos
nginx -s reload
出現了這個錯誤,這是由於配置SSL證書須要引用到nginx的中SSL模塊,然而咱們一開始編譯的Nginx的時候並無把SSL模塊一塊兒編譯進去,如何解決呢?解決辦法也很簡單網站
進入nginx的解壓目錄,執行./configure --with-http\_ssl\_module
,這時若你的系統中未安裝openssl
可能會出現錯誤,須要安裝openssl
spa
#ubuntu apt install openssl openssl-devel #centos yum -y install openssl openssl-devel
在咱們執行完作命令後,咱們能夠查看到在nginx解壓目錄下,objs文件夾中多了一個nginx的文件,這個就是新版本的程序了。首先咱們把以前的nginx先備份一下,而後把新的程序複製過去覆蓋以前的便可。日誌
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak #備份 cp objs/nginx /usr/local/nginx/sbin/nginx
檢驗code
./nginx -V
實際上,訪問網站遇到的問題是500,開始第一反應是用500去查詢,沒找到什麼有價值的,而後去看錯誤日誌
緣由是重定向循環了, 而之因此會這樣是由於nginx的配置,orm
咱們須要瞭解try_files
這個參數server
格式1:try_files _file_ ... _uri_; 格式2:try_files _file_ ... =_code_; 可應用的上下文:server,location段
Checks the existence of files in the specified order and uses the first found file for request processing; the processing is performed in the current context. The path to a file is constructed from the_file_
parameter according to the root and alias directives. It is possible to check directory’s existence by specifying a slash at the end of a name, e.g. 「$uri/
」. If none of the files were found, an internal redirect to the_uri_
specified in the last parameter is made.關鍵點1:按指定的file順序查找存在的文件,並使用第一個找到的文件進行請求處理
關鍵點2:查找路徑是按照給定的root或alias爲根路徑來查找的($uri)
關鍵點3:若是給出的file都沒有匹配到,則從新請求最後一個參數給定的uri,就是新的location匹配
關鍵點4:若是是格式2,若是最後一個參數是 = 404 ,若給出的file都沒有匹配到,則最後返回404的響應碼
再結合上面的報錯信息
也就大概明白上面爲何會循環了,
發生這個錯誤是由於nginx沒法進入該文件所在文件夾或沒法讀該文件,解決辦法有不少,我選擇了一個我以爲最簡單的