#user nobody;javascript
#雙核2個進程
#worker_processes 2;
#worker_cpu_affinity 01 10; php
#8核開啓8個進程
worker_processes 8;
worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001; css
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;html
pid logs/nginx.pid;java
# 每進程最大可打開文件描述符數量(linux上文件描述符比較廣義,網絡端口、設備、磁盤文件都是)
# 文件描述符用完了,新的鏈接會被拒絕,產生502類錯誤
# linux最大可打開文件數可經過ulimit -n FILECNT或 /etc/security/limits.conf配置
# 理論值 系統最大數量 / 進程數。但進程間工做量並非平均分配的,因此能夠設置的大一些
#設置了這個後,修改worker_connections值時,是不能超過worker_rlimit_nofile的這個值。
worker_rlimit_nofile 65000; linux
events {nginx
#使用最高效的IO模式
use epoll;
#單個進程最大鏈接數
# 併發響應能力的關鍵配置值
# 每一個進程容許的最大同時鏈接數,work_connectins * worker_processes = maxConnection;
# 要注意maxConnections不等同於可響應的用戶數量,
# 由於通常一個瀏覽器會同時開兩條鏈接,若是反向代理,nginx到後端服務器的鏈接也要佔用鏈接數
# 因此,作靜態服務器時,通常 maxClient = work_connectins * worker_processes / 2
# 作反向代理服務器時 maxClient = work_connectins * worker_processes / 4
# 這個值理論上越大越好,但最多可承受多少請求與配件和網絡相關,也可最大可打開文件,最大可用sockets數量(約64K)有關
worker_connections 10480;
}web
http {
include mime.types;
default_type application/octet-stream;算法
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';apache
#access_log logs/access.log main;
# 關閉此項可減小IO開銷,但也沒法記錄訪問信息,不利用業務分析,通常運維狀況不建議使用,
#若是不須要查看訪問日誌必須設置爲0ff由於若是不設置爲off那麼它會自動打印的,註釋了都沒有用的
access_log off;
server_tokens off; # 控制版本爲了安全
underscores_in_headers on; #若是將其設置爲off,那麼當出現不合法的HTTP頭部時,Nginx會拒絕 #服務,並直接向用戶發送400(Bad Request)錯誤。若是將其設置爲on,則會忽略此HTTP頭部。
sendfile on;
#防止網絡阻塞
tcp_nopush on;
#keepalive_timeout 0;
# HTTP1.1支持持久鏈接alive
# 下降每一個鏈接的alive時間可在必定程度上提升可響應鏈接數量,因此通常可適當下降此值
#長鏈接超時時間,單位是秒
keepalive_timeout 50;
#默認狀況下,Nginx的gzip壓縮是關閉的, gzip壓縮功能就是可讓你節省很多帶寬,可是會增長服務器CPU的開銷哦
#若是開啓了反向代理,那麼須要注意了,反向代理時候若是配置很差,有多是會卡死的
#開啓壓縮
gzip on;
#爲指定的客戶端禁用gzip功能,IE6或者更低版本禁用,IE6不支持壓縮,爲了兼容性
gzip_disable "msie6";
#判斷客戶端是否支持gzip壓縮,若是不支持就不開啓壓縮
gzip_vary on;
#gzip壓縮用於http1.1協議
#gzip_http_version 1.1;
#gzip_static 告訴nginx在壓縮資源以前,先查找是否有預先gzip處理過的資源。
#這要求你預先壓縮你的文件(在這個例子中被註釋掉了),
#從而容許你使用最高壓縮比,這樣nginx就不用再壓縮這些文件了
# gzip_static on;
#默認值: gzip_buffers 4 4k/8k
#做用域: http, server, location
#設置系統獲取幾個單位的緩存用於存儲gzip的壓縮結果數據流。 例如 4 4k 表明以4k爲單位,按照原始數據大小以4k爲單位的4倍申請內存。
# 4 8k 表明以8k爲單位,按照原始數據大小以8k爲單位的4倍申請內存。
#若是沒有設置,默認值是申請跟原始數據相同大小的內存空間去存儲gzip壓縮結果
gzip_buffers 4 16k;
#Nginx做爲反向代理的時候啓用,開啓或者關閉後端服務器返回的結果,匹配的前提是後端服務器必需要返回包含」Via」的 header頭。
#容許或者禁止壓縮基於請求和響應的響應流。咱們設置爲any,意味着將會壓縮全部的請求
#off 代理不壓縮,默認設置是off,可是測試的時候發現這個配置不起做用,仍是壓縮了 若是代理服務器已經將對應的文件壓縮了,那麼這裏不會對其再次壓縮的,若是沒有壓縮,則會壓縮
#gzip_proxied off;
#設置對數據啓用壓縮的最少字節數。若是一個請求小於1000字節,咱們最好不要壓縮它,由於壓縮這些小的數據會下降處理此請求的全部進程的速度。
# 太短的內容壓縮效果不佳,壓縮過程還會浪費系統資源
gzip_min_length 2048;
#設置數據的壓縮等級。這個等級能夠是1-9之間的任意數值,9是最慢可是壓縮比最大的。咱們設置爲4,這是一個比較折中的設置
gzip_comp_level 6;
#設置須要壓縮的數據格式。下面例子中已經有一些了,你也能夠再添加更多的格式。設置哪壓縮種文本文件可參考 conf/mime.types text/html無效了
gzip_types application/javascript text/plain text/css application/x-javascript application/xml application/xml+rss text/javascript;
server {
#使用HTTPS 而且開啓SSL
listen 443 ssl;
server_name www.qzhibao.com;
charset utf-8;
#access_log logs/host.access.log main;
#下面是專爲 SSL的 配置
#公鑰
#證書實際上是個公鑰,它會被髮送到鏈接服務器的每一個客戶端,ssl_certificate_key私鑰是用來解密的,因此它的權限要獲得保護但nginx的主進程可以讀取。
#固然私鑰和證書能夠放在一個證書文件中,這種方式也只有公鑰證書才發送到client。
ssl_certificate /data/source/ssl_nginx/my_ssl/ssl-bundle.crt;
#私鑰
ssl_certificate_key /data/source/ssl_nginx/myserver4.key;
#設置ssl/tls會話緩存的類型和大小。若是設置了這個參數通常是shared,buildin可能會參數內存碎片,
#默認是none,和off差很少,停用緩存。如shared:SSL:10m表示我全部的nginx工做進程共享ssl會話緩存,官網介紹說1M能夠存放約4000個sessions。
#Session cache 的原理是使用 client hello 中的 session id 查詢服務端的 session cache, 若是服務端有對應的緩存,
#則直接使用已有的 session 信息提早完成握手,稱爲簡化握手。
#須要消耗服務端內存來存儲 session 內
#session id 是 TLS 協議的標準字段,市面上的瀏覽器所有都支持 session cache。
ssl_session_cache shared:SSL:10m;
#客戶端能夠重用會話緩存中ssl參數的過時時間,內網系統默認5分鐘過短了,能夠設成30m即30分鐘甚至4h。
ssl_session_timeout 30m;
#設置較長的keepalive_timeout也能夠減小請求ssl會話協商的開銷,但同時得考慮線程的併發數了
#keepalive_timeout 50;
#ssl_protocols指令用於啓動特定的加密協議,nginx在1.1.13和1.0.12版本後默認是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,
# TLSv1.1與TLSv1.2要確保OpenSSL >= 1.0.1 ,SSLv3 如今還有不少地方在用但有很多被攻擊的漏洞。
ssl_protocols SSLv2 SSLv3 TLSv1;
#這裏就是定義服務器的驗證算法 ,加密算法
#ssl_ciphers選擇加密套件,不一樣的瀏覽器所支持的套件(和順序)可能會不一樣。
#這裏指定的是OpenSSL庫可以識別的寫法,你能夠經過 openssl -v cipher 'RC4:HIGH:!aNULL:!MD5'(後面是你所指定的套件加密算法) 來看所支持算法。
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
#使用上面說明的 nginx配置的 驗證算法,加密算法
#設置協商加密算法時,優先使用咱們服務端的加密套件,而不是客戶端瀏覽器的加密套件
ssl_prefer_server_ciphers on;
location ~.*\.(jpg|jpeg|png|doc|gif|htm|html|bmp|swf|ioc|rar|zip|txt|flv|mid|ppt|pdf|xls|mp3|wma)$ {
#配置Nginx動靜分離,定義的靜態頁面直接從Nginx發佈目錄讀取,不過發佈項目的時候得將項目也發到nginx的發佈目錄。這樣作針對的是遠程的動靜分離,特別是負載均衡的時候更加須要使用了
#也能夠是後端服務器的項目地址,好比tomcat的,這樣比較方便,不用將項目再次發佈到nginx裏面的,這樣作針對與本地的動靜分離
#root html;
#root D:/tomcat/7.65/apache-tomcat-7.0.65-windows-x86/apache-tomcat-7.0.65/webapps;
#root /data/web/qzb_pc/target/qzb_pc-1.0-SNAPSHOT/WEB-INF/jsp;
root /data/web/qzbpc/target/qzbpc-1.0-SNAPSHOT/WEB-INF/jsp;
#expires定義用戶瀏覽器緩存的時間爲15天,若是靜態頁面不常更新,能夠設置更長,這樣能夠節省帶寬和緩解服務器的壓力
expires 7d;
}
location / {
#後端服務器數據回傳時間(代理髮送超時)
proxy_connect_timeout 60s;
#後端服務器數據回傳時間(代理髮送超時)
proxy_send_timeout 60s;
#鏈接成功後,後端服務器響應時間(代理接收超時)
proxy_read_timeout 60s;
#容許客戶端請求的最大單文件字節數
client_max_body_size 10m;
#proxy_buffering:該指令控制緩衝是否啓用。默認狀況下,它的值是「on」。
#緩衝區代理緩衝用戶端請求的最大字節數
client_body_buffer_size 128k;
#設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
#從後端服務器的響應頭緩衝區大小,它包含headers,和其餘部分響應是分開的。
#該指令設置響應部分的緩衝區大小。默認狀況下,它和proxy_buffers是相同的尺寸,
#但由於這是用於頭信息,這一般能夠設置爲一個較低的值。
proxy_buffer_size 4k;
#proxy_buffers緩衝區,網頁平均在32k如下的設置
#該指令控制代理響應緩衝區的數量(第一個參數)和大小(第二個參數)。
#默認配置是8個緩衝區大小等於一個內存頁(4K或者8K)。
#增長緩衝區的數目可讓你緩衝更多信息。
proxy_buffers 4 32k;
#高負荷下緩衝大小(proxy_buffers*2)
#此指令設置標註「client-ready」緩衝區的最大尺寸。
#而客戶端能夠一次讀取來自一個緩衝區的數據,緩衝被放置在隊列中,批量發送到客戶端。
#此指令控制容許是在這種狀態下的緩衝空間的大小。
proxy_busy_buffers_size 64k;
#設定緩存文件夾大小,大於這個值,將從upstream服務器傳
#這是每一個請求能用磁盤上臨時文件最大大小。
#這些當上遊響應太大不能裝配到緩衝區時被建立
#沒有設置緩存文件夾,因此不能直接設置這個,不然報錯
#proxy_max_temp_file_size 2048m;
#這是當被代理服務器的響應過大時Nginx一次性寫入臨時文件的數據量。
proxy_temp_file_write_size 64k;
# root html;
# index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://www.qzhibao.com:9090;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
server{
listen 80;
server_name qzhibao.com www.qzhibao.com;
charset utf-8;
location ~.webscan_360_cn\.(html)$ {
#配置Nginx動靜分離,定義的靜態頁面直接從Nginx發佈目錄讀取,不過發佈項目的時候得將項目也發到nginx的發佈目錄。這樣作針對的是遠程的動靜分離,特別是負載均衡的時候更加須要使用了
#也能夠是後端服務器的項目地址,好比tomcat的,這樣比較方便,不用將項目再次發佈到nginx裏面的,這樣作針對與本地的動靜分離
#root html;
#root D:/tomcat/7.65/apache-tomcat-7.0.65-windows-x86/apache-tomcat-7.0.65/webapps;
#root /data/web/qzb_pc/target/qzb_pc-1.0-SNAPSHOT/WEB-INF/jsp;
root /data/web/qzbpc/target/qzbpc-1.0-SNAPSHOT/WEB-INF/jsp;
#expires定義用戶瀏覽器緩存的時間爲15天,若是靜態頁面不常更新,能夠設置更長,這樣能夠節省帶寬和緩解服務器的壓力
#expires 7d;
}
location / {
#必須將rewrite放入location裏面,不然上面的localtion那個就不起效果了
rewrite ^(.*) https://www.qzhibao.com$1 permanent;
}
}
server{
#監聽443端口,由於https默認的端口就是443的,就算沒有使用ssl證書,也是能夠安全的打開和使用的,不會提示不安全,若是使用不夠好的ssl,瀏覽器可能會攔截的
listen 443;
server_name qzhibao.com;
charset utf-8;
rewrite ^(.*) https://www.qzhibao.com$1 permanent;
}
server{
listen 80;
server_name m.qzhibao.com;
charset utf-8;
rewrite ^(.*) https://m.qzhibao.com$1 permanent;
}
server {
#listen 80;
listen 443 ssl;
server_name m.qzhibao.com;
charset utf-8;
#access_log logs/host.access.log main;
#下面是專爲 SSL的 配置
#公鑰
#證書實際上是個公鑰,它會被髮送到鏈接服務器的每一個客戶端,ssl_certificate_key私鑰是用來解密的,因此它的權限要獲得保護但nginx的主進程可以讀取。
#固然私鑰和證書能夠放在一個證書文件中,這種方式也只有公鑰證書才發送到client。
ssl_certificate /data/source/ssl_nginx/my_ssl/ssl-bundle.crt;
#私鑰
ssl_certificate_key /data/source/ssl_nginx/myserver4.key;
#設置ssl/tls會話緩存的類型和大小。若是設置了這個參數通常是shared,buildin可能會參數內存碎片,
#默認是none,和off差很少,停用緩存。如shared:SSL:10m表示我全部的nginx工做進程共享ssl會話緩存,官網介紹說1M能夠存放約4000個sessions。
#Session cache 的原理是使用 client hello 中的 session id 查詢服務端的 session cache, 若是服務端有對應的緩存,
#則直接使用已有的 session 信息提早完成握手,稱爲簡化握手。
#須要消耗服務端內存來存儲 session 內
#session id 是 TLS 協議的標準字段,市面上的瀏覽器所有都支持 session cache。
ssl_session_cache shared:SSL:10m;
#客戶端能夠重用會話緩存中ssl參數的過時時間,內網系統默認5分鐘過短了,能夠設成30m即30分鐘甚至4h。
ssl_session_timeout 30m;
#設置較長的keepalive_timeout也能夠減小請求ssl會話協商的開銷,但同時得考慮線程的併發數了
#keepalive_timeout 50;
#ssl_protocols指令用於啓動特定的加密協議,nginx在1.1.13和1.0.12版本後默認是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,
# TLSv1.1與TLSv1.2要確保OpenSSL >= 1.0.1 ,SSLv3 如今還有不少地方在用但有很多被攻擊的漏洞。
ssl_protocols SSLv2 SSLv3 TLSv1;
#這裏就是定義服務器的驗證算法 ,加密算法
#ssl_ciphers選擇加密套件,不一樣的瀏覽器所支持的套件(和順序)可能會不一樣。
#這裏指定的是OpenSSL庫可以識別的寫法,你能夠經過 openssl -v cipher 'RC4:HIGH:!aNULL:!MD5'(後面是你所指定的套件加密算法) 來看所支持算法。
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
#使用上面說明的 nginx配置的 驗證算法,加密算法
#設置協商加密算法時,優先使用咱們服務端的加密套件,而不是客戶端瀏覽器的加密套件
ssl_prefer_server_ciphers on;
location ~.*\.(jpg|jpeg|png|doc|gif|htm|html|bmp|swf|ioc|rar|zip|txt|flv|mid|ppt|pdf|xls|mp3|wma)$ {
#配置Nginx動靜分離,定義的靜態頁面直接從Nginx發佈目錄讀取,不過發佈項目的時候得將項目也發到nginx的發佈目錄。這樣作針對的是遠程的動靜分離,特別是負載均衡的時候更加須要使用了
#也能夠是後端服務器的項目地址,好比tomcat的,這樣比較方便,不用將項目再次發佈到nginx裏面的,這樣作針對與本地的動靜分離
#root html;
#root D:/tomcat/7.65/apache-tomcat-7.0.65-windows-x86/apache-tomcat-7.0.65/webapps;
#root /data/web/qzb_2/target/qzb-2.0-SNAPSHOT/WEB-INF/jsp;
root /data/web/qzb/target/qzb-2.0-SNAPSHOT/WEB-INF/jsp;
#expires定義用戶瀏覽器緩存的時間爲15天,若是靜態頁面不常更新,能夠設置更長,這樣能夠節省帶寬和緩解服務器的壓力
expires 7d;
}
location / {
#後端服務器數據回傳時間(代理髮送超時)
proxy_connect_timeout 60s;
#後端服務器數據回傳時間(代理髮送超時)
proxy_send_timeout 60s;
#鏈接成功後,後端服務器響應時間(代理接收超時)
proxy_read_timeout 60s;
#容許客戶端請求的最大單文件字節數
client_max_body_size 10m;
#proxy_buffering:該指令控制緩衝是否啓用。默認狀況下,它的值是「on」。
#緩衝區代理緩衝用戶端請求的最大字節數
client_body_buffer_size 128k;
#設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
#從後端服務器的響應頭緩衝區大小,它包含headers,和其餘部分響應是分開的。
#該指令設置響應部分的緩衝區大小。默認狀況下,它和proxy_buffers是相同的尺寸,
#但由於這是用於頭信息,這一般能夠設置爲一個較低的值。
proxy_buffer_size 4k;
#proxy_buffers緩衝區,網頁平均在32k如下的設置
#該指令控制代理響應緩衝區的數量(第一個參數)和大小(第二個參數)。
#默認配置是8個緩衝區大小等於一個內存頁(4K或者8K)。
#增長緩衝區的數目可讓你緩衝更多信息。
proxy_buffers 4 32k;
#高負荷下緩衝大小(proxy_buffers*2)
#此指令設置標註「client-ready」緩衝區的最大尺寸。
#而客戶端能夠一次讀取來自一個緩衝區的數據,緩衝被放置在隊列中,批量發送到客戶端。
#此指令控制容許是在這種狀態下的緩衝空間的大小。
proxy_busy_buffers_size 64k;
#設定緩存文件夾大小,大於這個值,將從upstream服務器傳
#這是每一個請求能用磁盤上臨時文件最大大小。
#這些當上遊響應太大不能裝配到緩衝區時被建立
#沒有設置緩存文件夾,因此不能直接設置這個,不然報錯
#proxy_max_temp_file_size 2048m;
#這是當被代理服務器的響應過大時Nginx一次性寫入臨時文件的數據量。
proxy_temp_file_write_size 64k;
# root html;
# index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://m.qzhibao.com:9090;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 9446 ssl;
server_name m.qzhibao.com;
charset utf-8;
#access_log logs/host.access.log main;
#下面是專爲 SSL的 配置
#公鑰
#證書實際上是個公鑰,它會被髮送到鏈接服務器的每一個客戶端,ssl_certificate_key私鑰是用來解密的,因此它的權限要獲得保護但nginx的主進程可以讀取。
#固然私鑰和證書能夠放在一個證書文件中,這種方式也只有公鑰證書才發送到client。
ssl_certificate /data/source/ssl_nginx/my_ssl/ssl-bundle.crt;
#私鑰
ssl_certificate_key /data/source/ssl_nginx/myserver4.key;
#設置ssl/tls會話緩存的類型和大小。若是設置了這個參數通常是shared,buildin可能會參數內存碎片,
#默認是none,和off差很少,停用緩存。如shared:SSL:10m表示我全部的nginx工做進程共享ssl會話緩存,官網介紹說1M能夠存放約4000個sessions。
#Session cache 的原理是使用 client hello 中的 session id 查詢服務端的 session cache, 若是服務端有對應的緩存,
#則直接使用已有的 session 信息提早完成握手,稱爲簡化握手。
#須要消耗服務端內存來存儲 session 內
#session id 是 TLS 協議的標準字段,市面上的瀏覽器所有都支持 session cache。
ssl_session_cache shared:SSL:10m;
#客戶端能夠重用會話緩存中ssl參數的過時時間,內網系統默認5分鐘過短了,能夠設成30m即30分鐘甚至4h。
ssl_session_timeout 30m;
#設置較長的keepalive_timeout也能夠減小請求ssl會話協商的開銷,但同時得考慮線程的併發數了
#keepalive_timeout 50;
#ssl_protocols指令用於啓動特定的加密協議,nginx在1.1.13和1.0.12版本後默認是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,
# TLSv1.1與TLSv1.2要確保OpenSSL >= 1.0.1 ,SSLv3 如今還有不少地方在用但有很多被攻擊的漏洞。
ssl_protocols SSLv2 SSLv3 TLSv1;
#這裏就是定義服務器的驗證算法 ,加密算法
#ssl_ciphers選擇加密套件,不一樣的瀏覽器所支持的套件(和順序)可能會不一樣。
#這裏指定的是OpenSSL庫可以識別的寫法,你能夠經過 openssl -v cipher 'RC4:HIGH:!aNULL:!MD5'(後面是你所指定的套件加密算法) 來看所支持算法。
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
#使用上面說明的 nginx配置的 驗證算法,加密算法
#設置協商加密算法時,優先使用咱們服務端的加密套件,而不是客戶端瀏覽器的加密套件
ssl_prefer_server_ciphers on;
#目前不要緩存js和css由於常常更新
location ~.*\.(jpg|jpeg|png|doc|gif|htm|html|bmp|swf|ioc|rar|zip|txt|flv|mid|ppt|pdf|xls|mp3|wma)$ {
#配置Nginx動靜分離,定義的靜態頁面直接從Nginx發佈目錄讀取,不過發佈項目的時候得將項目也發到nginx的發佈目錄。這樣作針對的是遠程的動靜分離,特別是負載均衡的時候更加須要使用了
#也能夠是後端服務器的項目地址,好比tomcat的,這樣比較方便,不用將項目再次發佈到nginx裏面的,這樣作針對與本地的動靜分離
#root html;
#root D:/tomcat/7.65/apache-tomcat-7.0.65-windows-x86/apache-tomcat-7.0.65/webapps;
#root /data/web/qzb_2/target/qzb-2.0-SNAPSHOT/WEB-INF/jsp;
root /data/web/qzb_app/target/qzb_app-1.0-SNAPSHOT/WEB-INF/jsp;
#expires定義用戶瀏覽器緩存的時間爲15天,若是靜態頁面不常更新,能夠設置更長,這樣能夠節省帶寬和緩解服務器的壓力
expires 7d;
}
location / {
#後端服務器數據回傳時間(代理髮送超時)
proxy_connect_timeout 60s;
#後端服務器數據回傳時間(代理髮送超時)
proxy_send_timeout 60s;
#鏈接成功後,後端服務器響應時間(代理接收超時)
proxy_read_timeout 60s;
#容許客戶端請求的最大單文件字節數
client_max_body_size 10m;
#proxy_buffering:該指令控制緩衝是否啓用。默認狀況下,它的值是「on」。
#緩衝區代理緩衝用戶端請求的最大字節數
client_body_buffer_size 128k;
#設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
#從後端服務器的響應頭緩衝區大小,它包含headers,和其餘部分響應是分開的。
#該指令設置響應部分的緩衝區大小。默認狀況下,它和proxy_buffers是相同的尺寸,
#但由於這是用於頭信息,這一般能夠設置爲一個較低的值。
proxy_buffer_size 4k;
#proxy_buffers緩衝區,網頁平均在32k如下的設置
#該指令控制代理響應緩衝區的數量(第一個參數)和大小(第二個參數)。
#默認配置是8個緩衝區大小等於一個內存頁(4K或者8K)。
#增長緩衝區的數目可讓你緩衝更多信息。
proxy_buffers 4 32k;
#高負荷下緩衝大小(proxy_buffers*2)
#此指令設置標註「client-ready」緩衝區的最大尺寸。
#而客戶端能夠一次讀取來自一個緩衝區的數據,緩衝被放置在隊列中,批量發送到客戶端。
#此指令控制容許是在這種狀態下的緩衝空間的大小。
proxy_busy_buffers_size 64k;
#設定緩存文件夾大小,大於這個值,將從upstream服務器傳
#這是每一個請求能用磁盤上臨時文件最大大小。
#這些當上遊響應太大不能裝配到緩衝區時被建立
#沒有設置緩存文件夾,因此不能直接設置這個,不然報錯
#proxy_max_temp_file_size 2048m;
#這是當被代理服務器的響應過大時Nginx一次性寫入臨時文件的數據量。
proxy_temp_file_write_size 64k;
# root html;
# index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://m.qzhibao.com:9292;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#server{
# listen 80;
# server_name t2.qzhibao.com;
# charset utf-8;
#能夠跳轉的,301重定向, permanent是永久跳轉, redirect是單次重定向使用
# rewrite ^(.*) http://tpc.qzhibao.com:9090$1 permanent;
#
#}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
#監聽443 端口,而且開啓 ssl 的證書模式
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.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;
# }
#}
}