1、下载
bash
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2、安装依赖包
bash
yum install gcc -y
yum install pcre pcre-devel -y
yum install zlib zlib-devel -y
yum install openssl openssl-devel -y
3、编译&安装
bash
./configure --prefix=/opt/nginx
make && make install
4、配置文件
nginx.conf
bash
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
5、启停
bash
sbin/nginx # 启动
sbin/nginx -s stop # 停止
sbin/nginx -V # 查看版本
bash
# 验证
curl -i http://XXXXXX:8080
6、nginx.conf详解
6.1 Log_format
参数 | 描述 |
---|---|
$remote_addr | 客户端地址 |
$remote_user | 客户端用户名称 |
$time_local | 访问时间和时区 |
$request | 请求的URI和HTTP协议 |
$status | HTTP请求状态 |
$body_bytes_sent | 发送给客户端文件内容大小 |
$http_referer | url跳转来源 |
$http_user_agent | 用户终端浏览器等信息 |
$http_x_forwarded_for | |
$upstream_status | upstream状态 |
$upstream_addr | 后台upstream的地址 |
$request_time | 整个请求的总时间 |
$upstream_response_time | 请求过程中,upstream响应时间 |
bash
log_format main '$remote_addr|$remote_user|[$time_local]|"$request"'
'|$status|$request_time|$body_bytes_sent|"$http_referer"'
'|"$http_user_agent"|"$http_x_forwarded_for"';
6.2 Location
参数 | 说明 |
---|---|
= | 表示精确匹配 |
^~ | 表示匹配URL路径,以xx开头 |
~ | 正则匹配,区分大小写,以xx结尾 |
~* | 正则匹配,不区分大小写,以xx结尾 |
!~和!~* | 正则不匹配,区分大小写和不区分大小写,以xx结尾 |
/ | 通用匹配,任何请求都会匹配到。 |
【匹配顺序】:
首先精确匹配 =
其次以xx开头匹配^~
然后是按文件中顺序的正则匹配
最后是交给 / 通用匹配。
【1】alias是一个目录别名的定义,root则是最上层目录的定义。
bash
location /check/ {
# 访问/check/目录下文件,nginx去html目录下找文件
alias html;
index index.html;
}
bash
location /check/ {
# 访问/check/目录下文件,nginx去html/check/目录下找文件
root html;
index index.html;
}
【2】代理
bash
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.207.28.134:5061;
root html;
index index.html index.htm;
}