nginx常見問題整理和解決辦法
以下就是我們整理的nginx常見的問題,解決辦法我們例舉了1-2種,大家可以都測試下。
常見問題
問題一:相同server_name多個(gè)虛擬主機(jī)優(yōu)先級訪問
server{
listen 80;
server_name server1;
location{...}
}
server{
listen 80;
server_name server2;
location{...}
}
解決方法:
配置兩個(gè)conf文件:server1.conf 和 server2.conf
根據(jù)Linux系統(tǒng)中文件順序讀取
問題二:location匹配優(yōu)先級
location = /code1/ {
rewrite ^(.*)$ /code1/index.html break;
}
location ~ /code.* {
rewrite ^(.*)$ /code3/index.html break;
}
location ^~ /code {
rewrite ^(.*)$ /code2/index.html break;
}
知識填坑:
=:進(jìn)行普通字符精確匹配,完全匹配
^~:普通字符匹配,使用前綴匹配
~ \~*:表示執(zhí)行一個(gè)正則匹配()
解決方法:
根據(jù)匹配找到最優(yōu)匹配
優(yōu)先級:完全匹配>正則匹配>前綴匹配
問題三:try_files使用
location / {
try_files $uri $uri/ /index.html;
}
解決方法:
按順序檢查文件是否存在
問題四:Nginx的alias和root區(qū)別
location /request_path/img/ {
root /local_path/img/;
}
location /request_path/img/ {
alias /local_path/img/;
}
解決方法:
root設(shè)置,最終請求的路徑為/local_path/img/request_path/img/
alias設(shè)置,最終請求為/local_path/img/
問題五:通過多層代理,傳遞用戶真實(shí)IP
解決方法:
set x_real_ip=$remote_addr $x_real_ip=真實(shí)IP
性能優(yōu)化問題
優(yōu)化考慮點(diǎn):
當(dāng)前系統(tǒng)結(jié)構(gòu)瓶頸,如觀察指標(biāo)、壓力測試
了解業(yè)務(wù)模式,如接口業(yè)務(wù)類型、系統(tǒng)層次化結(jié)構(gòu)
性能與安全
接口壓力測試工具:ab
安裝:yum install httpd-tools
使用:ab -n 2000 -c 20 http://127.0.0.1/
nginx關(guān)于系統(tǒng)的優(yōu)化點(diǎn):
網(wǎng)絡(luò)、系統(tǒng)、服務(wù)、程序、數(shù)據(jù)庫
控制文件句柄數(shù)量,文件句柄就是一個(gè)索引
CPU親和,使進(jìn)程不會(huì)在處理器間頻繁遷移,減少性能損耗
vim /etc/nginx/nginx.conf
user nginx;
worker_processes 16;
worker_cpu_affinity auto;
worker_rlimit_nofile 15535;
events{
use epoll;
worker_connections 10240;
}
http{
include /etc/nginx/mime.types;
default_type application/octet-stream;
#Charset
charset utf-8;
log_format main '';
access_log /var/log/nginx/access.log main;
#Core module
sendfile on;
keepalive_timeout 65;
#Gzip module
gzip on;
gzip_disable "MSIE [1-6]\.";
gzip_http_version 1.1;
#Virtal server
include /etc/nginx/conf.d/*.conf;
}
nginx安全問題及防范策略
惡意行為
問題:爬蟲行為和惡意抓取、資源盜用
解決方法:
基礎(chǔ)防盜鏈功能:不讓惡意用戶輕易的爬取網(wǎng)站對外數(shù)據(jù)
secure_link_module模塊:對數(shù)據(jù)安全性提高加密驗(yàn)證和失效性,對一些重要數(shù)據(jù)使用
access_module模塊:對后臺(tái)、部分用戶服務(wù)的數(shù)據(jù)提供IP監(jiān)控,如規(guī)定IP等
應(yīng)用層攻擊
問題一:后臺(tái)密碼撞庫,通過密碼字典不斷對后臺(tái)系統(tǒng)登錄性嘗試,獲取后臺(tái)密碼
解決方法:
后臺(tái)密碼復(fù)雜的,大小寫數(shù)字字符等
預(yù)警機(jī)制,同一IP的頻繁訪問
access_module模塊:對后臺(tái)、部分用戶服務(wù)的數(shù)據(jù)提供IP監(jiān)控
問題二:文件上傳漏洞,利用可以上傳的接口將惡意代碼植入服務(wù)器中,再通過url訪問以執(zhí)行
解決方法:
針對一些木馬和后綴等做一定的處理
location ^~ /upload{
root /usr/share/html;
if($request_filename ~*(.*)\.php){
return 403; #拒絕訪問
}
}
問題三:SQL注入,利用未過濾或未審核的用戶輸入的攻擊手段,讓應(yīng)用運(yùn)行本不應(yīng)該運(yùn)行的SQL代碼
解決方法:
針對' or 1=1 #等常見注入代碼進(jìn)行檢測
搭建安全waf,針對滲透規(guī)則寫正則表達(dá)式
nginx防攻擊策略
使用nginx+Lua搭建安全waf防火墻
防火墻功能:
攔截Cookie類型攻擊
攔截異常post請求
攔截cc攻擊,頻繁訪問
攔截URL,不想暴露的接口
攔截arg參數(shù)
- 解決nginx+lua搭建文件上傳下載服務(wù)問題
- Nginx配置React項(xiàng)目Url后直接輸入路由路徑時(shí)報(bào)404問題的解決
- nginx配置引發(fā)的403問題解決辦法
- nginx服務(wù)器通過配置來解決API的跨域問題
- Nginx中worker connections問題的解決方法
- windows下nginx的安裝使用及解決80端口被占用nginx不能啟動(dòng)的問題
- nginx服務(wù)器配置解決ajax的跨域問題
- 利用nginx解決跨域問題的方法(以flask為例)
- 詳解nginx過濾url實(shí)現(xiàn)前臺(tái)js的配置問題
- Nginx解決轉(zhuǎn)發(fā)地址時(shí)跨域的問題
相關(guān)文章
借用nginx.vim工具進(jìn)行語法高亮和格式化配置nginx.conf文件
今天小編就為大家分享一篇關(guān)于借用nginx.vim工具進(jìn)行語法高亮和格式化配置nginx.conf文件,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
Nginx服務(wù)器配置HTTPS nginx.config 配置文件(教程)
下面小編就為大家分享一篇Nginx服務(wù)器配置HTTPS nginx.config 配置文件(教程),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
配置Nginx實(shí)現(xiàn)訪問本地靜態(tài)資源的完整指南
Nginx 是一個(gè)高性能的 HTTP 服務(wù)器和反向代理服務(wù)器,廣泛用于靜態(tài)資源的托管和負(fù)載均衡,在開發(fā)和生產(chǎn)環(huán)境中,我們常常需要使用 Nginx 來提供本地靜態(tài)資源的訪問,本文將詳細(xì)介紹如何配置 Nginx 以便訪問本地靜態(tài)資源,需要的朋友可以參考下2024-08-08
nginx出現(xiàn)權(quán)限問題解決(13: Permission denied)
本文主要介紹了nginx出現(xiàn)權(quán)限問題解決(13: Permission denied),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理解析
waf是通過執(zhí)行一系列針對HTTP/HTTPS的安全策略來專門為Web應(yīng)用提供保護(hù)的一款產(chǎn)品,本文重點(diǎn)給大家介紹Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理,需要的朋友參考下吧2021-09-09
nginx+lua+redis實(shí)現(xiàn)降級的示例代碼
隨著用戶訪問量的激增,網(wǎng)站或電商平臺(tái)可能會(huì)面臨系統(tǒng)超負(fù)載的問題,導(dǎo)致注冊、下單、支付等功能出現(xiàn)問題,為保障核心服務(wù)的高可用性,可以采用降級策略,本文就來介紹一下nginx+lua+redis降級,感興趣的可以了解學(xué)習(xí)2024-10-10
通過Nginx代理轉(zhuǎn)發(fā)配置實(shí)現(xiàn)跨域的方法(API代理轉(zhuǎn)發(fā))
這篇文章主要給大家介紹了關(guān)于如何通過Nginx代理轉(zhuǎn)發(fā)配置實(shí)現(xiàn)跨域(API代理轉(zhuǎn)發(fā))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

