即增加了content-encoding:gzip
這些不快取的話,就要加上proxy_ignore_headers的配置項了。還有一點就是/dev/shm下面的檔案系統許可權預設只給root使用者,所以要chmod 777 -r /dev/shm 這樣不是很安全的做法,如果實際上線可以給定某個使用者組,關於使用者組的設定是配置的第一行
user www www;
上面第二段**的第6行是增加乙個header欄位方便檢視是否擊中快取。
同樣的nginx預設是有ssl模組功能,我們不用額外安裝,只需要簡單的配置就可以了。首先我們先來生成一些必要的證書。製作的過程還是比較簡單的。
#製作ca證書
openssl genrsa -des3 -out ca.key 2048
openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
#生成nginx伺服器所需證書,並使用ca簽名
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl x509 -req -in client.csr -out client.pem -signkey client.key -ca ca.crt -cakey ca.key -cacreateserial -days 3650
#取消證書密碼
openssl rsa -in client.key -out client.key.unsecure
下面就是配置nginx了,我們可以把需要用到的client.pem, client.pem,client.key.unsecure這三個檔案放到nginx所在機器的乙個目錄下,如/users/mazhen/nginx,剩下的nginx配置如下:
server
#ssl on 的寫法已經棄用
#ssl on;
ssl_certificate /users/mazhen/nginx/client.pem;
ssl_certificate_key /users/mazhen/nginx/client.key.unsecure;
}重啟nginx,我們就可以訪問https**了。 但是他出現這個:
提示您的鏈結不是私密連線,高階,繼續訪問即可。
這個是沒有什麼問題,具體原因是這個ca證書要得到認可。所以我們上面自己生成的https證書,只是自己生成的,如果要變成不提示安全問題的那種,就需要花錢購買了,剩下的這個自己上網解決。(雖然自己生成的證書可以用,但是還是抵擋不了dns欺騙,所以這種不安全證書,跟沒有其實是一樣的。不過據說這樣可以阻止運營商劫持。)
在server中增加如下內容即可
新增乙個server,用於接收localhost:8081,並且替換為https://localhost:8081
第一種寫法:
server
測試結果:
nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /usr/local/etc/nginx/nginx.conf:50,明明配置了,但是報了這個錯
解決方案:將 ssl_certificate /users/mazhen/nginx/client.pem;
ssl_certificate_key /users/mazhen/nginx/client.key.unsecure;
放到http部分.然後再次啟動,提示nginx: [warn] conflicting server name "localhost" on 0.0.0.0:8081, ignored
所以將第二個server中的localhost修改為172.16.25.44,再次重啟上面的錯誤提示沒了。
問題:按照上面寫法,瀏覽器中輸入http://localhost:8081/rsbi,enter鍵後,會替換成https://localhost/rsbi,
即http替換成了https,但是埠8081丟了,奇怪
查到乙個帖子,可能是host配置的不對,缺少了
proxy_set_header host $host:$server_port;或者是配置錯誤,如proxy_set_header host $host
即 nginx沒有正確的吧埠資訊傳送到後端,沒能正確的配置nginx。
修改後發現依舊不行,仍就是將http://localhost:8081/rsbi/替換成了https://localhost/rsbi/,缺少了埠8081
----花了太多時間 這個問題暫時放放吧 有知道原因或修改方案的麻煩指教下。
現在的nginx.conf如下:
} #靜態檔案 server
# 定義nginx執行的使用者 和 使用者組 如果對應伺服器暴露在外面的話建議使用許可權較小的使用者 防止被入侵
# user www www;
#nginx程序數, 建議設定為等於cpu總核心數
worker_processes 8;
#開啟全域性錯誤日誌型別
error_log /var/log/nginx/error.log info;
#程序檔案
pid /usr/local/var/run/nginx.pid;
#乙個nginx程序開啟的最多檔案描述數目 建議與ulimit -n一致
#如果面對高併發時 注意修改該值 ulimit -n 還有部分系統引數 而並非這個單獨確定
#動態伺服器組
upstream zh-jieli.com
#配置**引數
proxy_redirect off;
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 65;
proxy_send_timeout 65;
proxy_read_timeout 65;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
#快取配置
proxy_cache_key '$host:$server_port$request_uri';
proxy_temp_file_write_size 64k;
proxy_temp_path /dev/shm/jielierp/proxy_temp_path;
proxy_cache_path /dev/shm/jielierp/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=5d max_size=1g;
proxy_ignore_headers x-accel-expires expires cache-control set-cookie;
server
#其他頁面反向**到tomcat容器
借鑑:nginx+tomcat: Nginx設定TCP上游伺服器的SSL配置
本文介紹了如何為nginx plus和接受tcp連線的負載均衡的伺服器組設定ssl ssl終端意味著nginx plus充當與客戶端連線的伺服器端ssl端點 它執行對請求的解密和對響應的加密,否則後端伺服器就必須這樣做。該操作稱為終止,因為nginx plus關閉了客戶端連線,並通過新建立的未加密連...
nginx日誌相關和啟用壓縮,快取的設定
與nginx日誌相關的主要有2個指令 1 log format 用來設定日誌的格式 2 access log 用來指定日誌檔案的存放路徑,格式和快取大小 兩條指令既可以在http之間配置,也可以在server之間配置 語法格式 log format name format name表示定義的格式名稱...
nginx設定靜態頁面壓縮快取和過期時間
之前一直沒有整理成blog,只是有筆記,今天正好整理了一下,希望對朋友們有幫助!使用nginx伺服器的朋友可能都知道需要設定html靜態頁面快取與頁面壓縮與過期時間的設定了,下面我來給各位同學介紹一下配置方法,包括對ico,gif,bmp,jpg,jpeg,swf,js,css,檔案進行本地快取.可...