在nginx.conf
代碼實(shí)例:
HTTP中{}
upstream tornadoes {
server 120.24.212.93:8888;
server 120.24.212.93:8889;
server 120.24.212.93:8890;
server 120.24.212.93:8891;
}
server {
listen 80;
server_name www.tangkaisky.top;
location /static/ {
root /var/www/static;
if ($query_string) {
expires max;
}
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://tornadoes;
}
}
Nginx的SSL解密
應(yīng)用的開發(fā)者在瀏覽器和客戶端之間傳輸個(gè)人信息時(shí)需要特別注意保護(hù)信息不要落入壞人之手爵川。在不安全的WiFi接入中,用戶很容易受到cookie劫持攻擊材部,從而威脅他們?cè)诹餍械纳缃痪W(wǎng)站上的賬戶。對(duì)此唯竹,大部分主要的社交網(wǎng)絡(luò)應(yīng)用都默認(rèn)或作為用戶可配置選項(xiàng)使用安全協(xié)議乐导。同時(shí),我們使用Nginx解密傳入的SSL加密請(qǐng)求浸颓,然后把解碼后的HTTP請(qǐng)求分配給上游服務(wù)器物臂。
代碼清單8-2展示了一個(gè)用于解密傳入的HTTPS請(qǐng)求的server塊,并使用代碼清單8-1中我們使用過的代理指令轉(zhuǎn)發(fā)解密后的通信产上。
代碼清單8-2 使用SSL的server塊
server {
listen 443;
ssl on;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/cert.key;
default_type application/octet-stream;
location /static/ {
root /var/www/static;
if ($query_string) {
expires max;
}
}
location = /favicon.ico {
rewrite (.*) /static/favicon.ico;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://tornadoes;
}
}
這段代碼和上面的配置非常相似鹦聪,除了Nginx將在標(biāo)準(zhǔn)HTTPS的443端口監(jiān)聽安全Web請(qǐng)求外。如果你想強(qiáng)制使用SSL連接蒂秘,你可以在server塊中包含一個(gè)rewrite指令來監(jiān)聽80端口的HTTP連接泽本。代碼清單8-3是這種重定向的一個(gè)例子。
代碼清單8-3 用于重定向HTTP請(qǐng)求到安全渠道的server塊
server {
listen 80;
server_name example.com;
rewrite /(.*) https://$http_host/$1 redirect;
}
Nginx是一個(gè)非常魯棒的工具姻僧,我們?cè)谶@里僅僅接觸到幫助Tornado部署的一些簡(jiǎn)單的配置選項(xiàng)规丽。Nginx的wiki文檔是獲得安裝和配置這個(gè)強(qiáng)有力的工具額外信息的一個(gè)非常好的資源。