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