摘要:四優(yōu)勢多路復(fù)用輕量級功能模塊少代碼模塊少親和把核心和工作進(jìn)程綁定,把每個進(jìn)程固定在一個上執(zhí)行,減少切換的,獲得更好的性能。
Nginx-基礎(chǔ)篇 一、環(huán)境:
系統(tǒng)硬件:CPU>=2Core,內(nèi)存>=256M
操作系統(tǒng):CentOS 7.2 x64
確認(rèn)系統(tǒng)網(wǎng)絡(luò)
ping www.baidu.com
確認(rèn)yum可用
yum list
確認(rèn)關(guān)閉iptables規(guī)則
iptables -L(查看是否有iptables規(guī)則)
iptables -F(關(guān)閉規(guī)則)
iptables -t nat -L(查看net表里有沒有規(guī)則)
如果net表中有規(guī)則可以執(zhí)行:iptables -t nat -F
確認(rèn)停用selinux
getenforce(查看selinux是否開啟)
setenforce 0 (關(guān)閉selinux)
2、兩項安裝
安裝gcc等:
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
安裝基本工具:
yum -y install wget httpd-tools vim
3、一次初始化
cd /opt;mkdir app download logs work backup
app:代碼目錄
download:網(wǎng)上下載的源碼包
logs:自定義日志
work:shell腳本
backup:備份
Nginx是一個開源且高性能、可靠的HTTP中間件、代理服務(wù)。
IO多路復(fù)用epoll
輕量級
功能模塊少
代碼模塊少
CPU親和(affinity)
把CPU核心和Nginx工作進(jìn)程綁定,把每個worker進(jìn)程固定在一個cpu上執(zhí)行,減少切換cpu的cache miss,獲得更好的性能。
sendfile
把文件的傳輸只通過 kernel space傳輸給用戶,不經(jīng)過 user space
進(jìn)入官網(wǎng) http://nginx.org/
點擊 download
點擊 Linux packages for stable version
修改/etc/yum.repos.d/nginx.repo,并添加官網(wǎng)指定內(nèi)容
注意:baseurl需要修改OS和OSRELEASE為你對應(yīng)的服務(wù)器版本
直接 yum install nginx
nginx -v 出現(xiàn)nginx的版本信息說明安裝成功!
rpm -ql nginx:可以查詢nginx安裝的文件
目錄
/etc/logrotate.d/nginx:配置文件,Nginx日志輪轉(zhuǎn),用于logrotate服務(wù)的日志切割
/etc/nginx、/etc/nginx/nginx.conf、/etc/nginx/conf.d、/etc/nginx/conf.d/default.conf:目錄、配置文件,Nginx主配置文件
/etc/nginx/fastcgi_params、/etc/nginx/uwsgi_params、/etc/nginx/scgi_params:配置文件,cgi配置相關(guān),fastcgi配置
/etc/nginx/koi-utf、/etc/nginx/koi-win、/etc/nginx/win-utf:配置文件,編碼轉(zhuǎn)換映射轉(zhuǎn)化文件
/etc/nginx/mime.types:配置文件,設(shè)置http協(xié)議的Content-Type與擴(kuò)展名對應(yīng)關(guān)系
/usr/lib/systemd/system/nginx-debug.service、/usr/lib/systemd/system/nginx.service、/etc/sysconfig/negix、/etc/sysconfig/negix-debug:配置文件,配置守護(hù)進(jìn)程管理器的管理方式
/usr/lib64/nginx/modules、/etc/nginx/modules:目錄,Nginx模塊目錄
/usr/sbin/nginx、/usr/sbin/nginx-debug:命令,Nginx服務(wù)的啟動管理的終端命令
/var/cache/nginx:目錄,Nginx的緩存目錄
/var/log/nginx:目錄,Nginx的日志目錄
nginx -V:
編譯參數(shù)
安裝目的目錄或路徑
--prefix=/etc/nginx
--sbin-path=/usr/sbin/nginx
--modules-path=/usr/lib64/nginx/modules
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock
執(zhí)行對應(yīng)模塊時,nginx所保留的臨時性文件
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
設(shè)定nginx進(jìn)程啟動的用戶和用戶組
--user=nginx
--group=nginx
設(shè)置額外的參數(shù)將被添加到CFLAGS變量
--with-cc-opt=parameters
設(shè)置附加的參數(shù),鏈接系統(tǒng)庫
--with-ld-opt=parameters
目錄中隨機(jī)選擇一個主頁
--with-http_random_index_module
HTTP內(nèi)容替換
--with-http_sub_module
Nginx的客戶端狀態(tài)
--with-http_stub_status_module
Nginx默認(rèn)配置語法
user:設(shè)置nginx服務(wù)的系統(tǒng)使用用戶
worker_processes:工作進(jìn)程數(shù)(最好跟cpu的數(shù)量保持一致)
error_log:nginx的錯誤日志
pid:nginx服務(wù)啟動的pid
events:
worker_connections:每個進(jìn)程允許最大連接數(shù)
use:工作進(jìn)程數(shù)
包括了:error.log和access.log
通過nginx.conf配置文件中l(wèi)og_format來定義要記錄的變量格式來記錄日志
可以被記錄到日志中的變量
HTTP請求變量
arg_PARAMETER:request請求的參數(shù)
http_HEADER:request請求的header
sent_http_HEADER:服務(wù)端返回的header
內(nèi)置變量
Nginx內(nèi)置
自定義變量
nginx -tc /etc/nginx/nginx.conf:查詢配置文件語法是否正確
nginx -s reload -c /etc/nginx/conf:重啟
http_stub_status_module(展示Nginx相關(guān)信息)
配置語法:stub_status
默認(rèn):無
Context:server,location
random_index_module
配置語法:random_index on|off
默認(rèn):random_index off
Context:location
http_sub_module
sub_filter string replacement
default:無
string:需要被替換的字符串
replacement:替換的字符串
sub_filter_last_modified on|off
default:sub_filter_last_modified off
sub_filter_once on|off
default:sub_filter_once on
on:只匹配第一個,off:全局匹配
注意:上述的Context:http,server,location
limit_conn_module(連接頻率限制)
limit_conn_zone
配置語法:limit_conn_zone key zone=name:size
默認(rèn):無
Context:http
limit_conn
配置語法:limit_conn zone number
默認(rèn):無
Context:http,server,location
limit_req_module(請求頻率限制)
limit_req_zone
配置語法:limit_req_zone key zone=name:size rate=rate
默認(rèn):無
Context:http
limit_req
配置語法:limit_req zone=name [brust=number] [nodelay]
默認(rèn):無
Context:http,server,location
http_access_module(基于IP的訪問控制)
allow
配置語法:allow address|CIDR(網(wǎng)段)|unix:|all;
默認(rèn):無
Context:http,server,location,limit_except
deny
配置語法:deny address|CIDR(網(wǎng)段)|unix:|all;
默認(rèn):無
Context:http,server,location,limit_except
局限性:通過代理訪問會失效
可以使用http_x_forwarded_for
結(jié)合geo模塊
通過http自定義變量傳遞
http_auth_basic_module(基于用戶的信任登錄)
auth_basic
配置語法:auth_basic string | off;
默認(rèn):無
Context:http,server,location,limit_except
auth_basic_user_file
配置語法:auth_basic_user_file filePath
默認(rèn):無
Context:http,server,location,limit_except
注意:file的格式是指定的,生成密碼可以使用httpd-tools
命令:htpasswd -c filePath username
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39893.html
摘要:常用官方模塊采用模塊化的架構(gòu),中大部分功能都是通過模塊方式提供的,比如模塊模塊等。一般是在開啟長連接情況下出現(xiàn)。 Nginx常用官方模塊 Nginx采用模塊化的架構(gòu),Nginx中大部分功能都是通過模塊方式提供的,比如HTTP模塊、Mail模塊等。 Nginx官方模塊文檔 1. ngx_http_stub_status_module 編譯選項 --with-http_stub_sta...
摘要:常用官方模塊采用模塊化的架構(gòu),中大部分功能都是通過模塊方式提供的,比如模塊模塊等。一般是在開啟長連接情況下出現(xiàn)。 Nginx常用官方模塊 Nginx采用模塊化的架構(gòu),Nginx中大部分功能都是通過模塊方式提供的,比如HTTP模塊、Mail模塊等。 Nginx官方模塊文檔 1. ngx_http_stub_status_module 編譯選項 --with-http_stub_sta...
摘要:老師比較精明,他告訴學(xué)生,誰完成了作業(yè)舉手,有舉手的同學(xué)他才去指導(dǎo)問題,他讓學(xué)生主動發(fā)聲,分開了并發(fā)。 一、環(huán)境 服務(wù)器版本:CentOS 7.2 為了保證學(xué)習(xí)階段不遇到奇怪的事情,請保證以下四點(大神選擇性無視) 確認(rèn)系統(tǒng)網(wǎng)絡(luò) 確認(rèn)yum可用 確認(rèn)關(guān)閉iptables 確認(rèn)停用selinux #查看iptables狀態(tài) systemctl status firewalld.ser...
閱讀 2520·2023-04-25 17:37
閱讀 1203·2021-11-24 10:29
閱讀 3709·2021-09-09 11:57
閱讀 704·2021-08-10 09:41
閱讀 2256·2019-08-30 15:55
閱讀 2822·2019-08-30 15:54
閱讀 1951·2019-08-30 15:53
閱讀 906·2019-08-30 15:43