一、相同server_name多個虛擬主機優先級訪問html
二、location匹配優先級java
三、try_files使用node
按順序檢查文件是否存在
location / {
# try_files $uri $uri/ /index.html;
root /opt/app/code/cache;
try_files $uri @java_page; # 引用@java_page
}
# 第一個不存在找第二個,第二個不存在找第三個
location @java_page{
proxy_pass http://127.0.0.1:9000;
}
四、alias和root區別linux
location /request_path/image/ { root /local_path/image/; } 訪問: http://www.imooc.com/request_path/image/cat.png 實際找:/local_path/image/request_path/image/cat.png
root路徑+請求路徑
location /request_path/image/ { alias /local_path/image/; } 訪問: http://www.imooc.com/request_path/image/cat.png 實際找:/local_path/image/cat.png
五、用什麼方法傳遞用戶的真實IPnginx
針對當咱們的nginx不是直接針對的服務,而是通過了不少的中轉, x_forward_for容易被修改, 在第一層約定一個 set x_real_ip=$remote_addr
六、其餘sql
性能優化考慮點數據庫
一、當前系統結構瓶頸
觀察指標、壓力測試
cpu負荷,內存使用,進程使用,系統性能瓶頸,請求日誌分析,查看當前的請求情況stub_status
當前用的是什麼,跑的是什麼業務,裏面的服務都是什麼樣子的,每一個服務都能支持多大的併發,
好比說對於nginx處理靜態資源的併發效率最高的瓶頸是多大,能支持多少kps;
對線上的產品進行壓力的測試在低峯期,作風險評估。
二、瞭解業務模式
業務接口類型、系統層次化結構
好比說搶購,平時挺少,會激增
是代理,仍是動靜分離
三、性能和安全
把握好二者的關係
壓力測試工具後端
yum install httpd-tools ad -n 2000 -c 2 http://127.0.0.1/ -n 總的請求書 -c 併發數 -k 是否開啓長鏈接
關注總時間
失敗個數
request per second
time per request 客戶端請求時間
time per request 服務端處理時間
transfer rate 網絡速率
/etc/security/limits.conf
root soft nofile 10000 # 發提醒,不會限制 root hard nofile 10000 # 進行限制 * soft nofile 10000 * hard nofile 10000
nginx:瀏覽器
worker_rlimit_nofile 35535; |/
events {
use epoll; worker-connections 10240;
}
cpu的親和:把進程一般不會在處理器以前頻繁遷移進程的頻率小,減小性能耗損緩存
/proc/cpuinfo有一些信息
cat /proc/cpuinfo |grep 'physical id' |sort|uniq|wc -l # 物理cpu
cat /proc/cpuinfo |grep 'cpu cores' |uniq # 核心
worker_processes 16;
#worker_cpu_affinity 0000000000000010 0000000000000010 0000000000000100 0000000000001000 0000000000010000 0000000000100000 0000000001000000 0000000010000000 0000000100000000 0000001000000000 0000010000000000 0000100000000000 0001000000000000 0010000000000000 0100000000000000 1000000000000000;
worker_processes 2; # 劃分
#worker_cpu_affinity 1010101010101010 0101010101010101;
worker_cpu_affinity auto; # nginx 1.9之後
user nginx; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 35535; events { use epoll; worker_connections 10240; } http { include /etc/nginx/mime.types; default_type application/octet-stream; charset utf-8; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$request_uri"'; access_log /var/log/nginx/access.log main; #access_log off; sendfile on; #tcp_nopush on; # 靜態資源服務器 打開 #tcp_nodeny on; # 動態服務,依賴keepalive keepalive_timeout 65; gzip on; gzip_disable "MSIE [1-6]\."; gzip_http_version 1.1; ######## #Virtal Server include /etc/nginx/conf.d/*.conf; }
location ^~ /upload{ root /opt/app/images; if ($request_filename ~*(.*)\.py){ return 403; } }
# 禁止上傳py文件
sql 注入 -------->利用未過濾/未審覈用戶輸入 的攻擊方法,讓應用運行本不該該運行的sql代碼;
select * from users where username='' or 1=1 #' and password=md5('') 等價於 select * from users where username='' or 1=1
瀏覽器緩存(不一樣東西不一樣時間)
類型分類
防盜鏈
流量的限制
防資源盜用
壓縮
代理服務
正向代理
代理緩存,緩存的設計
反向代理
代理緩存,緩存的設計
負載均衡
哈希策略
對後端結點的檢查
頭信息的處理,把用戶自定義的一些信息添加到cookie\頭信息傳遞到後端
Proxypass
LNMP
硬件 cpu、內存、硬盤
系統 用戶權限、日誌目錄存放
關聯服務 LVS,keepalive,syslog,uwsgi