Nginx情境應用技術分享

來源:互聯網
上載者:User

本文主要和大家分享Nginx情境應用技術希望能協助到大家。

Nginx作為靜態資源web服務

配置上下文:http、server或location。

可能涉及到,資源壓縮、跨域訪問、防盜鏈等情境。

資源壓縮配置的上下文:http、server或location
跨網域設定的上下文:http、server或location
防盜鏈配置的上下文:server、location

配置參考

vi /etc/nginx/conf.d/default.conf
server {
...

# 開啟sendfile,提高網路包的傳輸效率
sendfile on;

# 配置圖片資源的存放路徑及壓縮方式
location ~ .*\.(jpg|gif|png)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 圖片防盜鏈配置
# 不指定referer 協議不正確 允許存取指定IP 允許存取SEO最佳化
valid_referers none blocked 39.104.116.91 ~/google\./;
if ($invalid_referer) {
return 403;
}
root /opt/app/code/images;
}

# 配置txt|xml資源的存放路徑及壓縮方式
location ~ .*\.(txt|xml)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 1;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
root /opt/app/code/doc;
}
# 緩衝與跨域情境配置
location ~ .*\.(html|htm)$ {
#給返回報文添加Cache-Control、Expires頭,控制緩衝
#expires 24h;
#允許跨域到指定域
add_header Access-Control-Allow-Origin http://somehost.com;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
root /opt/app/code;
}

}

Nginx作為代理服務

正向 Proxy

正向 Proxy即用戶端代理。用戶端通過設定Proxy 伺服器,從而達到對目標地址的訪問需求。

Nginx可以充當這個Proxy 伺服器

配置參考

vi /etc/nginx/conf.d/default.conf
server {
...
# 可能會涉及到DNS網域名稱解析
resolver 8.8.8.8;
location / {
# 原封不動的讓自己轉寄用戶端的請求
proxy_pass http://$http_host$request_uri;
}
}

反向 Proxy

反向 Proxy即服務端代理。對用戶端隱藏真實伺服器位址。

配置參考

vi /etc/nginx/conf.d/default.conf
server {
location / {
#Real Server地址
proxy_pass http://127.0.0.1:8080;
include proxy_params;
}
}
# 其他代理配置獨立出去,方便複用
vi /etc/nginx/proxy_param
# default就可以了。除非返回301的情境,可能需要改寫
proxy_redirect defalut;

#配置header資訊,讓Real Server瞭解實際用戶端資訊
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;

#一些代理逾時設定
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

#代理緩衝區設定
proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;

Nginx作為負載平衡服務

參考配置

vi /etc/nginx/conf.d/default.conf
upstream backend {
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
server {
...
location / {
# 代理到upstream組
proxy_pass http://backend;
include proxy_params;
}
}

server額外參數

upstream組的server後面,支援加以下參數:

參數 說明
down 不參與負載平衡
backup 預留的備份伺服器。當沒有其他節點提供服務時,它才提供服務
max_fails 允許請求失敗的次數
fail_timeout 經過max_fails失敗後,服務暫停時間
max_conns 限制最大接收的串連數

負載平衡調度演算法

方式 說明
輪詢 按順序逐一分配給不同的後端伺服器
加權輪詢 weight值越大,分配到的幾率越大
ip_hash 同一IP固定訪問同一個後端伺服器
least_conn 哪個串連數少就發哪個機器
url_hash 按url參數的hash結果來分配
hash關鍵數值 hash自訂的key
# 加權輪詢
upstream backend {
server 192.168.1.101:8001 weight=5;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
# IP HASH
upstream backend {
ip_hash;
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
# 最少串連數
upstream backend {
least_conn;
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
# URL HASH
upstream backend {
url_hash;
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;

相關推薦:

nginx限速之串連數限制詳解

nginx配置React靜態頁面執行個體教程

php利用Nginx如何?反向 Proxy

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.