這篇文章主要介紹了關於Nginx的基礎內容,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
Nginx-基礎篇
一、環境:
二、環境偵錯確認:
1、四個確認
- 確認系統網路
#確認yum可用
確認關閉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:
Nginx是一個開源且高效能、可靠的HTTP中間件、代理服務。
四、Nginx優勢:
IO多工epoll
-
輕量級
功能模組少
把CPU核心和Nginx工作進程綁定,把每個worker進程固定在一個cpu上執行,減少切換cpu的cache miss,得到更好的效能。
#把檔案的傳輸只透過kernel space傳送給用戶,不經過user space
五、Nginx的快速安裝
#進入官網http://nginx.org/
-
點擊download
-
點擊Linux packages for stable version
-
修改/etc/yum.repos.d/nginx.repo ,並加入官網指定內容
注意
:baseurl需要修改OS和OSRELEASE為你對應的伺服器版本
直接yum install nginx
-
nginx -v 出現nginx的版本訊息說明安裝成功!
六、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設定相關,fastfastcgi配置
#cgi配置- #cgi配置。 ##/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:
-
編譯參數
--with-http_stub_status_module
-
#--with-http_sub_module
-
#- -with-http_random_index_module
-
--with-ld-opt=parameters
-
--with-cc-opt=parameters
-
--user=nginx
##--group=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
#--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所保留的臨時性檔案
設定nginx進程啟動的使用者和使用者群組
設定額外的參數將會被加入到CFLAGS變數
設定附加的參數,連結系統庫
-
目錄中隨機選擇一個主頁
HTTP內容替換
Nginx的用戶端狀態
Nginx預設設定語法
七、Nginx日誌類型
- 包含了:error.log和access.log
- 透過nginx.conf配置文件中log_format來定義要記錄的變數格式來記錄日誌
- 可以被記錄到日誌中的變數
- 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
-
##http_sub_module
default:sub_filter_once on
replacement:替換的字串
sub_filter string replacement sub_filter_last_modified on|off
#sub_filter_once on|off
-
注意
:上述的Context:http,server,location
-
# limit_conn_module(連線頻率限制)
設定語法:limit_conn zone number 預設:無
#預設:無
- Context:http
-
#limit_conn_zone
-
limit_req_module(請求頻率限制)
設定語法:limit_req zone=name [brust=number] [ nodelay]
預設:無
限制:透過代理存取會失效
##可以使用http_x_forwarded_for #結合geo模組 透過http自訂變數傳遞
http_auth_basic_module(基於使用者的信任登入)
#設定語法:auth_basic_user_file filePath #預設:無 #Context:http,server,location,limit_except
#設定語法:auth_basic string | off; #預設:無 Context:http,server,location,limit_except
##auth_basic
#注意:file的格式是指定的,產生密碼可以使用httpd-tools
指令:
htpasswd -c filePath username
#
以上是關於Nginx的基礎內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!