nginx壓縮 快取 增加ssl 配置例項

2021-09-12 03:56:00 字數 4430 閱讀 6204

即增加了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,檔案進行本地快取.可...