nginx的主要功能
1疟羹,正向代理
2,反向代理
3围橡,負載均衡
4暖混,WEB服務器
通常用nginx主要做反向代理,負載均衡配合反向代理可以做到很多事情某饰;
nginx做WEB服務器可以實現(xiàn)動靜文件分離儒恋;
nginx有很多可選的模塊,可以對nginx的功能進行擴展黔漂;
openresty是一個基于nginx與lua的高性能平臺诫尽,用lua進行擴展;
ssl簡單介紹
1炬守,主要的作用是為了互聯(lián)網(wǎng)安全牧嫉;
2,SSL是介于HTTP和TCP之間的一個可選層,對于TCP/IP協(xié)議來說酣藻;
3曹洽,SSL與TLS之間的關系是TLS(Transport Layer Security)繼承并增強了SSL(Secure Socket Layer)協(xié)議;
具體的協(xié)議交互過程就不再這里展開了辽剧,詳見參考連接送淆;
這里主要說下客戶端在SSL協(xié)商初期發(fā)送的Client Hello請求,其中有個擴展選項怕轿,里面有個server name這個可用于轉(zhuǎn)發(fā)偷崩。
配置nginx轉(zhuǎn)發(fā)tcp
1,版本撞羽,nginx version: nginx/1.11.12阐斜;我測試用的是這個版本。
2诀紊,編譯谒出,配置 ./configure --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module
最主要的使用這幾個模塊,有需要可以添加其它的模塊邻奠;然后編譯安裝make && make install笤喳。
3,配置碌宴,具體配置命令參考pread module和stream module莉测,啟動的時候指定下面的配置文件
user root;
worker_processes auto;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_core 2G;
worker_rlimit_nofile 65535;
events {
worker_connections 81920;
}
stream {
log_format main '$remote_addr - [$time_local] $connection '
'$status $proxy_protocol_addr $server_addr ';
access_log logs/access.log main;
resolver 114.114.114.114;
resolver_timeout 60s;
variables_hash_bucket_size 512;
server {
listen 443;
ssl_preread on;
proxy_pass $ssl_preread_server_name:443;
#大致看了一下源碼,這里為什么需要配置端口也沒有研究明白唧喉,求解釋捣卤?
}
}
4,目前測試基本上都是可以的八孝,在日志中會有一些錯誤董朝,不會影響正常服務,還再研究中干跛。
參考連接
https://nginx.org/en/docs/
https://github.com/openresty/lua-nginx-module
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
http://www.wosign.com/faq/faq2016-0309-04.htm
https://segmentfault.com/a/1190000002554673
如有問題歡迎批評指正子姜,謝謝。