超實(shí)用的Nginx常見(jiàn)配置合集分享
目錄
- 封禁 IP
- 僅開(kāi)放內(nèi)網(wǎng)
- 負(fù)載均衡
- 列出文件列表
- 路由轉(zhuǎn)發(fā)
- 開(kāi)啟 gzip 壓縮
- 解決跨域
- 資源防盜鏈
- Keepalived 提高吞吐量
- HTTP 強(qiáng)制跳轉(zhuǎn) HTTPS
封禁 IP
通過(guò) deny 可以封禁指定 IP
http { # .... # 封禁IP deny 192.168.4.3; deny 31.42.145.0/24; deny 51.12.35.0/24; }
僅開(kāi)放內(nèi)網(wǎng)
需要先禁止 192.168.1.1
開(kāi)放其他內(nèi)網(wǎng)網(wǎng)段,然后禁止其他所有 IP
location / { # block one workstation deny 192.168.1.1; # allow anyone in 192.168.1.0/24 allow 192.168.1.0/24; # drop rest of the world deny all; }
負(fù)載均衡
需要在 nginx.conf 中配置轉(zhuǎn)發(fā)服務(wù)器信息
權(quán)重: weight=1,權(quán)重如果分配的值越大,權(quán)重越高
最大連接數(shù): max_fails=3,最多連接失敗次數(shù)為3次
連接失敗時(shí)間: fail_timeout=20s,每次連接失敗的時(shí)間
在站點(diǎn)配置 default.conf 中開(kāi)啟負(fù)載均衡
# nginx.conf中配置轉(zhuǎn)發(fā)服務(wù)器信息 upstream web { server 192.168.37.2 weight=1 max_fails=3 fail_timeout=20s; server 192.168.37.3 weight=1 max_fails=3 fail_timeout=20s; } # default.conf中開(kāi)啟負(fù)載均衡 location / { proxy_pass http://web/; }
列出文件列表
有時(shí)候服務(wù)器作為資源服務(wù)器,給用戶(hù)提供下載資源使用
需要將服務(wù)上的文件以目錄形式列出來(lái)
可以通過(guò)配置 autoindex on 允許列出目錄,啟用目錄流量
可以通過(guò) autoindex_exact_size off 顯示出文件的確切大小,單位是 bytes
可以通過(guò) autoindex_localtime on 顯示的文件時(shí)間為文件的服務(wù)器時(shí)間
location / { autoindex on; autoindex_exact_size on; autoindex_localtime on; }
路由轉(zhuǎn)發(fā)
有時(shí)候用戶(hù)通過(guò)路由訪問(wèn)服務(wù)器的資源,其實(shí)你的資源在另一個(gè)文件夾下面
可以使用 alias 命令,將用戶(hù)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)
# nginx服務(wù)器 location /static { alias /public; } # window服務(wù)器 location ^~ /static { alias "D:\\public\\靜態(tài)資源"; }
開(kāi)啟 gzip 壓縮
gzip 壓縮是一種提升訪問(wèn)速度的優(yōu)化方向,可以大大提高
http { # 開(kāi)啟gzip gzip on; # 是否在http header中添加Vary: Accept-Encoding,建議開(kāi)啟 gzip_vary on; # 啟用gzip壓縮的最小文件,小于設(shè)置值的文件將不會(huì)壓縮 gzip_min_length 1k; gzip_proxied any; # gzip 壓縮級(jí)別,1-9,數(shù)字越大壓縮的越好,也越占用CPU時(shí)間 gzip_comp_level 6; # 設(shè)置壓縮所需要的緩沖區(qū)大小 gzip_buffers 16 8k; # 設(shè)置gzip的版本 gzip_http_version 1.1; # 進(jìn)行壓縮的文件類(lèi)型。javascript有多種形式,后面的圖片壓縮不需要的可以自行刪除 gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; }
解決跨域
server { location / { #允許跨域請(qǐng)求的域,*代表所有 add_header "Access-Control-Allow-Origin" *; #允許帶上cookie請(qǐng)求 add_header "Access-Control-Allow-Credentials" "true"; #允許請(qǐng)求的方法,比如 GET / POST / PUT / DELETE add_header "Access-Control-Allow-Methods" *; #允許請(qǐng)求的header add_header "Access-Control-Allow-Headers" *; } }
資源防盜鏈
為了防止其他網(wǎng)站直接實(shí)用我方的靜態(tài)資源,可以增加防盜鏈配置
server { location ~*/(js|image|css) { # 檢測(cè)*.autofelix.cn的請(qǐng)求,如果檢測(cè)是無(wú)效的,直接返回403 valid_referers *.autofelix.cn; if ($invalid_referer) { return 403; } } }
Keepalived 提高吞吐量
通過(guò) keepalived 可以設(shè)置長(zhǎng)連接處理的數(shù)量
通過(guò) proxy_http_version 可以設(shè)置長(zhǎng)連接 http 版本
通過(guò) proxy_set_header 可以清除 connection header 信息
# nginx.conf中配置吞吐量 upstream web { server 192.168.37.3 weight=1;keepalive 32; } # default.conf中配置 location / { proxy_pass http://tomcats; proxy_http_version 1.1; proxy_set_header Connection ""; }
HTTP 強(qiáng)制跳轉(zhuǎn) HTTPS
很多網(wǎng)站中,都強(qiáng)制實(shí)用 https 協(xié)議
這樣我們就需要將 http 強(qiáng)制跳轉(zhuǎn)到 https
server { # 監(jiān)聽(tīng)的端口號(hào) listen 80; # 強(qiáng)制跳轉(zhuǎn) rewrite ^(.*)$ https://$host$1 permanent; } server { # 監(jiān)聽(tīng)的端口號(hào) listen 443; # 主機(jī)名 server_name www.520web.cn; # 開(kāi)啟ssl驗(yàn)證 ssl on; # 字符集 charset utf-8; # 訪問(wèn)的根目錄 root /var/www/html; # 錯(cuò)誤頁(yè)面 error_page 404 ...404文件路徑; # 圖片視頻靜態(tài)資源緩存到客戶(hù)端時(shí)間 location ~ .*\.(jpg|jpeg|gif|png|ico|mp3|mp4|swf|flv){ expires 10d; } # js/css靜態(tài)資源緩存到客戶(hù)端時(shí)間 location ~ .*\.(js|css){ expires 5d; } # ssl的相關(guān)配置,pem文件的地址 ssl_certificate ...pem文件的絕對(duì)路徑; # key文件的絕對(duì)路徑 ssl_certificate_key ...key文件的絕對(duì)路徑; # 斷開(kāi)重連時(shí)間 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # ssl協(xié)議 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; # 首頁(yè)訪問(wèn)的文件 location / { index index.php index.html index.htm; } # php-ftm配置 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; includefastcgi_params; } }
到此這篇關(guān)于超實(shí)用的Nginx常見(jiàn)配置合集分享的文章就介紹到這了,更多相關(guān)Nginx常見(jiàn)配置內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
