Ninx 基礎入門補充1
一 Nginx 部署-yum
一 官網連線:
http://www.nginx.org
二 Nginx版本型別:
Mainline version: 主線版,即開發版
Stable version: 最新穩定版,生產環境上建議使用的版本
Legacy versions: 遺留的老版本的穩定版
三 配置YUM源:
版本很多,這裡以1.12版本為例
1.官方圖示:
2 操作示範:
四 安裝:
1.環境問題:
getenforce
systemctl status firewalld
2.操作命令
yum -y install nginx
systemctl start nginx
systemctl enable nginx
3.檢視安裝附帶的功能模組
nginx -V
4.測試:
二 Nginx 配置檔案
所有檔案:
rpm -ql nginx
示例如下:
/etc/logrotate.d/nginx
日誌輪轉
/etc/nginx/nginx.conf
總配置檔案
/etc/nginx/conf.d
子配置資料夾
/etc/nginx/conf.d/default.conf
預設的網站配置檔案
/etc/nginx/fastcgi_params
動態網站模組檔案-python,php所需的相關變數
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/koi-utf
字符集,檔案編碼
/etc/nginx/win-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
檔案關聯程式
網站檔案型別 和 相關處理程式
/etc/nginx/modules
模組資料夾。第三方模組
/etc/sysconfig/nginx
# Configuration file for the nginx service.
NGINX=/usr/sbin/nginx
CONFFILE=/etc/nginx/nginx.conf
/etc/sysconfig/nginx-debug
# Configuration file for the nginx-debug service.
NGINX=/usr/sbin/nginx-debug
CONFFILE=/etc/nginx/nginx.conf
LOCKFILE=/var/lock/subsys/nginx-debug
/usr/lib/systemd/system/nginx-debug.service
nginx除錯程式啟動指令碼
/usr/lib/systemd/system/nginx.service systemctl
服務指令碼。
/usr/sbin/nginx
主程式
/usr/sbin/nginx-debug
nginx除錯程式
/usr/share/doc/nginx-1.12.1
文件
/usr/share/doc/nginx-1.12.1/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
man 手冊
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
預設主頁
/var/cache/nginx
快取各種
ls /var/cache/nginx/
client_temp fastcgi_temp proxy_temp scgi_temp uwsgi_temp
/var/log/nginx
日誌資料夾
ls /var/log/nginx/
access.log error.log
/usr/lib64/nginx
Nginx模組目錄
三 編譯引數
操作命令:
nginx -V
示例如下:
nginx version: nginx/1.14.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments:
配置引數./configure --help查詢幫助
–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
程式ID
–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
php快取
–http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
python快取
–http-scgi-temp-path=/var/cache/nginx/scgi_temp
–with-compat
啟用動態模組相容性
–user=nginx
使用者
–group=nginx
組
–with-file-aio
使用nginx的aio特性會大大提高效能,比如圖片站的特點是大量的讀io操作,nginx aio不用等待每次io的結果,有助於併發處理大量io和提高nginx處理效率。
aio的優點就是能夠同時提交多個io請求給核心,然後直接由核心的io排程演算法去處理這些請求(directio),這樣的話,核心就有可能執行一些合併,節約了讀取檔案的處理時間。
就是非同步非阻塞
–with-threads
多執行緒模組
–with-http_addition_module
響應之前或者之後追加文字內容,比如想在站點底部追加一個js廣告或者新增的css樣式
示例
nginx配置addition
配置nginx.conf
server {
listen 80;
server_name www.ttlsa.com;
root /data/site/www.ttlsa.com;
location / {
add_before_body /2013/10/header.html;
add_after_body /2013/10/footer.html;
}
}
測試
以下三個檔案,對應請求的主體檔案和add_before_body、add_after_body對應的內容# cat /data/site/test.ttlsa.com/2013/10/20131001_add.html
訪問結果如下,可以看到20131001_add.html的頂部和底部分別嵌入了子請求header.html和footer的內容。# curl test.ttlsa.com/2013/10/20131001_add.html
I am header!
–with-http_auth_request_module
認證模組
–with-http_dav_module
增加上傳PUT,DELETE,MKCOL:建立集合,COPY和MOVE方法)預設情況下為關閉
–with-http_flv_module
NGINX 新增MP4、FLV視訊支援模組
–with-http_gunzip_module
壓縮模組
–with-http_gzip_static_module
–with-http_mp4_module
多媒體模組
–with-http_random_index_module
nginx顯示隨機首頁模組
–with-http_realip_module
Nginx獲取真實IP模組
–with-http_secure_link_module
nginx安全下載模組
–with-http_slice_module
nginx中文文件
–with-http_ssl_module
安全模組
–with-http_stub_status_module
訪問狀態
–with-http_sub_module
nginx替換網站響應內容
–with-http_v2_module
–with-mail
郵件客戶端
–with-mail_ssl_module
–with-stream
負載均衡模組。nginx從1.9.0開始,新增加了一個stream模組,用來實現四層協議的轉發、代理或者負載均衡等。
–with-stream_realip_module
–with-stream_ssl_module
–with-stream_ssl_preread_module
–with-cc-opt=’-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –
param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC’
–with-ld-opt=’-Wl,-z,relro -Wl,-z,now -pie’
四 Nginx 基本配置
一 觀察主配置檔案:
1.分類
CoreModule 核心模組 (程式數等)
EventsModule 事件驅動模組(工作模式等)
HttpCoreModule http核心模組(文件程式型別,配置檔案等)
2.模組功能
1、全域性/核心塊:配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程式pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。
2、events塊:配置影響nginx伺服器或與使用者的網路連線。有每個程式的最大連線數,選取哪種事件驅動模型處理連線請求,是否允許同時接受多個網路連線,開啟多個網路連線序列化等。
3、http塊:可以巢狀多個server,配置代理,快取,日誌定義等絕大多數功能和第三方模組的配置。如檔案引入,mime-type定義,日誌自定義,是否使用sendfile傳輸檔案,連線超時時間,單連線請求數等。
4、server塊:配置虛擬主機的相關引數,一個http中可以有多個server。
5、location塊:配置請求的路由,以及各種頁面的處理情況。
二 vim /etc/nginx/nginx.conf
示例如下
user nginx;
執行nginx程式的獨立賬號
worker_processes 1;
啟動的worker程式數量(CPU數量一致或auto)
error_log /var/log/nginx/error.log warn;
錯誤日誌存放位置
pid /var/run/nginx.pid;
events {
事件
use epoll;
事件驅動模型epoll【預設】
事件驅動模型分類,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 10240;
//每個worker程式允許處理的最大連線數,例如10240,65535
http {
include /etc/nginx/mime.types;
文件和程式的關聯記錄
default_type application/octet-stream;
位元組流處理方式
log_format main '$remote_addr -
r
e
m
o
t
e
u
s
e
r
[
remote_user [
remoteuser[time_local] “$request” ’
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
日誌格式,講日誌回來看
access_log /var/log/nginx/access.log main;
sendfile on;
優化引數
高效傳輸檔案的模式
Nginx高階篇sendfile配置
sendfile: 設定為on表示啟動高效傳輸檔案的模式。sendfile可以讓Nginx在傳輸檔案時直接在磁碟和tcp socket之間傳輸資料。如果這個引數不開啟,會先在使用者空間(Nginx程式空間)申請一個buffer,用read函式把資料從磁碟讀到cache,再從cache讀取到使用者空間的buffer,再用write函式把資料從使用者空間的buffer寫入到核心的buffer,最後到tcp socket。開啟這個引數後可以讓資料不用經過使用者buffer。
#tcp_nopush on;
優化引數
也就是說tcp_nopush = on 會設定呼叫tcp_cork方法,這個也是預設的,結果就是資料包不會馬上傳送出去,等到資料包最大時,一次性的傳輸出去,這樣有助於解決網路堵塞。
keepalive_timeout 65;
優化引數
長連線
#gzip on;
壓縮引數
include /etc/nginx/conf.d/*.conf;
包含子配置資料夾
二 觀察預設虛擬主機配置檔案;
vim /etc/nginx/conf.d/default.conf
示例如下
server {
預設網站配置檔案
listen 80;
監聽埠
server_name localhost;
FQDN
#charset koi8-r;
網頁字元型別
#access_log /var/log/nginx/host.access.log main;
日誌
location / {
root /usr/share/nginx/html;
主目錄
index index.html index.htm;
預設主頁名
}
#error_page 404 /404.html;
錯誤頁面# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
錯誤頁面
location = /50x.html {
錯誤頁面
root /usr/share/nginx/html;
錯誤頁面主目錄
}# proxy the PHP scripts to Apache listening on 127.0.0.1:80
代理設定
#location ~ .php$ {# proxy_pass http://127.0.0.1;
#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
動態網站設定
#location ~ .php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;
#}# deny access to .htaccess files, if Apache’s document root
訪問控制部分# concurs with nginx’s one
#location ~ /.ht {# deny all;
#}
}
三 啟動一個新的虛擬主機
1 vim /etc/nginx/conf.d/xuleilinux.conf
server {
listen 80;
server_name xuleilinux.com;
location / {
root /xuleilinux;
index index.html ;
}
}
mkdir /xuleilinux
echo 美男子 > /xuleilinux/index.html
名詞解釋:
server 虛擬主機
listen 監聽埠
server_name 伺服器名稱
location 網站目錄設定
root 網站主目錄在本地的路徑
index 主頁檔名
http{} 是整個伺服器,所有虛擬主機的設定。
server{}是某一個虛擬主機的設定
location{} 是某一個頁面的設定。
2.重啟服務
3.域名解析和訪問
相關文章
- Elasticsearch(1):基礎入門Elasticsearch
- MyBatis基礎:MyBatis入門(1)MyBatis
- Dubbo入門(1) - 基礎概念
- Golang基礎語法補充Golang
- 《css基礎補充--規範》CSS
- rman基礎知識補充
- 【WEB基礎】HTML & CSS 基礎入門(1)初識WebHTMLCSS
- C#基礎語法補充C#
- 前端基礎之jQuery重要補充前端jQuery
- ThinkPHP3.2 快速入門(1)基礎PHP
- Java的一些基礎補充Java
- gdb基礎命令和常用操作補充
- makefile基礎和工作常用點補充
- Python 基礎 4-1 字典入門Python
- Nginx入門到實戰(1)基礎篇Nginx
- JavaScript入門②-函式(1)基礎{淺出}JavaScript函式
- pytorch入門- tensor基礎操作(1)PyTorch
- Java基礎擴充套件1.資料輸入Java套件
- 【UML入門教程】——總結和自我補充
- python基礎(補充):遞迴的深度Python遞迴
- Linux命令補充及基礎優化。Linux優化
- 淺入kubernetes(1):Kubernetes 入門基礎
- 爬蟲開發知識入門基礎(1)爬蟲
- Linux入門學習(1基礎操作命令)Linux
- Altium Designer 20 入門基礎知識(1)
- openCV入門 核心操作 1 影像的基礎操作OpenCV
- RabbitMQ基礎入門MQ
- mongodb基礎入門MongoDB
- MySQL 基礎入門MySql
- ZooKeeper 基礎入門
- Elasticsearch 基礎入門Elasticsearch
- Vim 入門:基礎
- Bootstrap基礎入門boot
- Html基礎入門HTML
- ElasticSearch基礎入門Elasticsearch
- HTML 基礎入門HTML
- Dart 基礎入門Dart
- SQL入門基礎SQL