Nginx 是一款高性能的 Web 服務(wù)器軟件∧涨恚可以作為反向代理妨蛹、負(fù)載均衡與緩存服務(wù)器使用。Nginx 是為高并發(fā)網(wǎng)站的應(yīng)用場景而設(shè)計的晴竞。在國內(nèi)如百度蛙卤、淘寶、騰訊颓鲜、新浪表窘、網(wǎng)易等網(wǎng)站都開始使用Nginx 來滿足一些高并發(fā)訪問的需求。
1.linux 安裝 nginx
1.1 下載 nginx
[root@localhost opt]# wget https://nginx.org/download/nginx-1.14.0.tar.gz
1.2 解壓
[root@localhost opt]# tar xvf nginx-1.14.0.tar.gz
1.3 源碼安裝
安裝前甜滨,先安裝 nginx 依賴包
pcre- deve l 為Nginx 模塊(如rewrit e )提供正則表達式庫
zl ib -dev el 為Nginx 模塊(如gzip ) 提供數(shù)據(jù)壓縮用的函數(shù)庫
openss l <leve l 為Nginx 模塊(如ssl 提供密碼算法乐严、證書以及SSL 協(xié)議等功能)
[root@localhost opt]# yum -y install pcre-devel openssl-devel
安裝nginx
[root@localhost opt]# cd nginx-1.14.0/
[root@localhost nginx-1.14.0]# ./configure \
> --prefix=/opt/nginx \
> --with-http_ssl_module
[root@localhost nginx-1.14.0]# make && make install
2. nginx 基本操作
- nginx 啟動停止
[root@localhost opt]# cd nginx/sbin 進行編譯后的nginx 執(zhí)行目錄下
[root@localhost sbin]# ./nginx 啟動 nginx
查看 nginx 是否啟動成功
[root@localhost sbin]# ps aux|grep nginx
root 8069 0.0 0.0 45924 1124 ? Ss 15:11 0:00 nginx: master process ./nginx
nobody 8070 0.0 0.0 48456 1976 ? S 15:11 0:00 nginx: worker process
root 8092 0.0 0.0 112720 976 pts/0 R+ 15:12 0:00 grep --color=auto nginx
停止 nginx
[root@localhost sbin]# ./nginx -s stop
- 查看nginx 端口是否被占用
nginx 默認(rèn)占用 80 端口
[root@localhost sbin]# netstat -tlnp
-
測試
注意關(guān)閉防火墻或者對 80 端口放行
- 添加軟連接,在任意目錄下執(zhí)行 nginx 程序
[root@localhost sbin]# ln -s ./nginx /usr/local/sbin/nginx
3.nginx 基本配置 (nginx.conf 配置文件)
3.1 配置文件結(jié)構(gòu)
配置文件結(jié)構(gòu)是由 5 個塊組成 如下圖:
配置文件默認(rèn)配置內(nèi)容:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
worker_processes 指令
配置 nginx 工作進程數(shù)衣摩,一般為cpu 總核心數(shù)或者 總核心數(shù)的2倍worker_connections 指令
配置一個工作進程并發(fā)處理的連接數(shù)include 指令
引入配置文件 路徑為nginx.conf 配置文件的相對路徑昂验。 eg:/opt/nginx/conf/mime.typesdefault_type 指令
設(shè)置默認(rèn)文件類型sendfile 指令
默認(rèn)的值為 on ,表示開啟高效文件傳輸keepalive_timeout 指令
設(shè)置長連接超時時間艾扮,秒為單位listen 指令
設(shè)置監(jiān)聽端口既琴,默認(rèn)為 80server_name 指令
設(shè)置主機域名root 指令
設(shè)置主機站點的根目錄地址index 指令
設(shè)置默認(rèn)索引文件error_page 指令
設(shè)置自定義錯誤頁面
3.2 訪問控制
是對資源的訪問權(quán)的控制
- 訪問控制指令(allow deny)
allow : 允許訪問權(quán)限
deny :禁止訪問權(quán)限
以上兩個指令值可以跟 ip地址 、 ip 段 泡嘴、 all
注意:allow 甫恩、 deny 兩種指令單個、或者混合酌予、還是單個多次磺箕、混合多次出現(xiàn)時,優(yōu)先級為里層塊出現(xiàn)的優(yōu)先級高于外層塊出現(xiàn)的指令 或者 在同一塊出現(xiàn)抛虫,后出現(xiàn)的指令可以覆蓋前出現(xiàn)的指令松靡。
-
訪問控制指令窄化限定 配置使用 location 指令
location 指令前綴:
例子:
http {
...
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
# deny all; 拒絕請求,返回403
# allow all; 允許請求
}
location /abc {
deny all;
}
location ~ /.+\.jsp$ {
proxy_pass http://location:9090;
}
# 匹配所有/test路徑下的jsp文件
location ~ /test/.+\.jsp$ {
proxy_pass http://localhost:8080;
}
# 定義各類錯誤頁
error_page 404 /404.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# @類似于變量定義
# error_page 403 http://blog.csdn.net; #這種定義不允許建椰,需求利用@定義臨時變量來實現(xiàn)
error_page 403 @page403;
location @page403 {
proxy_pass http://blog.csdn.net;
}
}
}
4.虛擬主機
4.1 基于端口配置虛擬主機
#配置端口8001 端口號的虛擬主機
server {
listen 8001;
server name 192.168.1.188;
root html/html8001;
index index.html index.htm;
)
#配置端口8002 端口號的虛擬主機
server {
listen 8002;
server name 192.168.1.188;
root html/html8002;
index index . html index. htm;
)
4.2 基于ip配置虛擬主機
#配置ip為192.168.1.189 的虛擬主機
server {
listen 80;
server name 192.168.1.189;
root html/html8001;
index index.html index.htm;
)
#配置ip為192.168.1.190 的虛擬主機
server {
listen 80;
server name 192.168.1.190;
root html/html8002;
index index . html index. htm;
)
4.3 基于域名配置虛擬主機
#配置域名為www.cqzhangjian.cn 的虛擬主機
server {
listen 80;
server name www.cqzhangjian.cn;
root html/cqzhangjian.cn;
index index.html index.htm;
)
#配置域名為cqzhangjian.cn 的虛擬主機
server {
listen 80;
server name cqzhangjian.cn;
root html/cqzhangjian.cn;
index index . html index. htm;
)
4.4 設(shè)置目錄列表
Nginx 提供的autoindex on 開啟目錄列表
Nginx 還提供的autoindex_ exac t size 指令設(shè)置精準(zhǔn)
顯示文件大小還是大概顯示文件大械衿邸;通過autoindex_localtime 指令設(shè)置文件最后一次修
改時間的格式棉姐。默認(rèn)情況下屠列, autoindex exact_size 指令和autoind e x_localtime 指令的值分
別為on 和off
4.5 虛擬機主機配置文件引入
1.在 /usr / local/nginx/ conf 路徑下創(chuàng)建vhost 目錄,用于保存Nginx 服務(wù)器的虛擬主機配置文件伞矩。
2.為了便于管理脸哀,推薦使用站點域名為配置文件命名。例如扭吁,創(chuàng)建域名為www.cqzhangjian.cn的配置文件。
3.第1 種方式: 且在個文件引人 include vhost/www.cqzhangjian.cn;第2 種方式:利用通配符include vhost /*. conf;