Nginx的使用經(jīng)驗小結(jié)
Nginx
Nginx簡單介紹
一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器
Nginx命令參數(shù)
nginx -t 測試配置是否正確
nginx -s reload 加載最新配置
nginx -s stop 立即停止
nginx -s quit 優(yōu)雅停止
nginx -s reopen 重新打開日志
kill -USR2 cat /usr/local/nginx/logs/nginx.pid 快速重啟
Nginx全局段配置
worker_processes 1;工作進(jìn)程為1個 CPU 數(shù)量 * 核數(shù)
events 區(qū)段 網(wǎng)卡請求 80 443 Nginx 觸發(fā)事件
Nginx配置虛擬主機(jī)
listen
server_name
location
Nginx日志管理
* 系統(tǒng)默認(rèn)日志格式:log_format main '$remote_addr $request_length $body_bytes_sent $request_time[s] - - [$time_local] ' '"$request" $status $http_referer "-" "$http_user_agent" $server_name $server_addr $http_x_forwarded_for $http_x_real_ip';
* 自定義日志格式:log_format simple '$remote_addr -- $request'
* 系統(tǒng)默認(rèn)日志釋義:遠(yuǎn)程IP-遠(yuǎn)程用戶/用戶時間 請求方法 請求body長度長度 referer 來源信息 http-user-agent 用戶代理/蜘蛛 被轉(zhuǎn)發(fā)請求的原始ip http_x_forwarded_for 在經(jīng)過代理是 代理把你的本來的IP加在此頭信息中,傳輸你的原始IP
Nginx-Laravel5 項目搭建
window上傳本地項目使用 secureCRT-sftp put get 命令上傳 connect sftp session, 遠(yuǎn)程:cd 本地:lcd,lpwd, put *.zip
Laravel5返回500權(quán)限修改:1.chmod 777 -R storage 2.chmod 777 -R bootstrap/cache/
配置env : vi .env 修改數(shù)據(jù)庫配置相關(guān)參數(shù)
執(zhí)行 php artisan migrate 創(chuàng)建數(shù)據(jù)表
Nginx 支持pathinfo
# 典型配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
include fastcgi_params;
}
# 修改第1,6行,支持pathinfo
location ~ \.php(.*)$ { # 正則匹配.php后的pathinfo部分
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
fastcgi_param PATH_INFO $1; # 把pathinfo部分賦給PATH_INFO變量
include fastcgi_params;
}
Nginx 支持URL重寫
1.如果 不是資源文件就重寫
if (!-e $request_filename) {
rewrite (.*)$ /index.php/$1;
}
2.try_files
try_files $uri $uri/ /index.php?$args;
Nginx 反向代理與動靜分離
用Nginx做反向代理用proxy_pass,以反向代理為例,nginx不自己處理圖片的相關(guān)請求,而是把圖片的請求轉(zhuǎn)發(fā)給Apache處理。
location ~\.(jpg|jpeg|png|gif)${
proxy_pass HTTP://IP:port;
}
反向代理導(dǎo)致了后端服務(wù)器接到客戶端IP為前端服務(wù)器的IP而不是真正的IP解決方案
location ~ \.(jpg|jpeg|png|gif) {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass IP:port;
}
Nginx 集群和負(fù)載均衡
Upstream{} 模塊 把多臺服務(wù)器加入到一個組 然后 memcache pass, fastcgi_pass, proxy_pass => upstream 組
配置Upstream
upstream web{
server IP:8080 weight=1 max_fails=2 fail_timeout=30s;
server IP2:80 weight=1 max_fails=2 fail_timeout=30s;
}
下游調(diào)用
location ~ \.(jpg|png|gif|jpeg) {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://web;
}
負(fù)載均衡常見的策略釋義
基于cookie值區(qū)別做負(fù)載均衡(Nginx sticky 們模塊)
基于URI利用一致性哈希算法做均衡(NginxHttpUPstreamConsistentHash 模塊)
基于IP做負(fù)載均衡
相關(guān)文章
Nginx實現(xiàn)動態(tài)攔截非法訪問ip的方法
最近在訪問時不時會被暴力刷量,爬蟲和惡意攻擊導(dǎo)致數(shù)據(jù)庫,服務(wù)等癱瘓,所以本文介紹了在Nginx上實現(xiàn)一個動態(tài)攔截IP的方法,具體是當(dāng)某個IP在1分鐘內(nèi)訪問超過60次時,將其加入Redis并攔截,攔截時間默認(rèn)1天,需要的朋友可以參考下2025-02-02
完美解決Nginx 504 Gateway time-out問題
這篇文章主要介紹了完美解決Nginx 504 Gateway time-out問題,需要的朋友可以參考下2014-11-11
Nginx配置HTTP強(qiáng)制跳轉(zhuǎn)到HTTPS的解決辦法
這篇文章主要給大家介紹了關(guān)于Nginx配置HTTP強(qiáng)制跳轉(zhuǎn)到HTTPS的解決辦法,當(dāng)Nginx配置https后通常需要將用戶http請求強(qiáng)制跳轉(zhuǎn)到https,需要的朋友可以參考下2023-08-08

