Nginx (engine x) 是一款基于异步框架的轻量级/高性能的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev(伊戈尔·赛索耶夫)所开发.话不多说直接上步骤
1.安装nginx,我是在root用户下不需要加sudo
yum install nginx
安装成功之后,显示下版本信息
nginx -v
说明已经安装成功
安装成功默认是处于运行状态
ps aux | grep nginx
关闭nginx服务
service nginx stop
启动nginx服务
service nginx start
2.nginx常见的目录介绍
配置文件信息
cd /etc/nginx/
ll
log日志目录
cd /var/log/nginx/
ll
默认首页目录
cd /usr/share/nginx/html/
ll
3.在/etc/nginx/conf.d目录下,有一个conf.d的目录,,进入conf.d的这个目录里,然后新建一个配置文件frontend.conf,一般我们配置的信息放在这里.
cd /etc/nginx/conf.d
touch frontend.conf
4.server下配置多个location根据路径匹的不同做不同的处理
语法规则: location [=|~|~*|^~] /uri/ { … }
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求
- = 开头表示:精确匹配。
- ^~ 开头表示:区分大小写以什么开头。
- ~ 开头表示:区分大小写的正则匹配。
- ~* 开头表示:不区分大小写的正则匹配。
- !~ 和!~*分别表示:区分大小写 不匹配 及不区分大小写 不匹配的正则匹配。
- / 表示:通用匹配,任何请求都会匹配到。
5.实例解析
server {
listen 80;
listen [::]:80;
server_name location.test.com;access_log /var/log/nginx/location.host.access.log main;
#*********************注意多个location通常按精确的放前面,模糊大范围的放后面,nginx先找= ******************************
location = /login.html { #精确匹配 /login
root /root/dist; #请求/login.html相当于寻找资源/root/dist/login.html
}
location ^~ /prefix/ { #区分大小写且以/prefix/开头
root /root/dist; #root代表根目录,请求/prefix/prefix.html相当于寻找资源/root/dist/prefix/prefix.html
}
location ~ .(png|jpg)$ { #不区分大小写且以.png或.jpg结尾
root /root/dist; #请求/suffix/a.png相当于寻找资源/root/dist/suffix/a.png
}
location ^~ /v1_0/ { # 区分大小写且以/v1_0/开头
proxy_pass https://www.jd.com/; #proxy_pass 此处的url以/结尾,则nginx会取掉location部分再转发,例如,请求/v1_0/电器?name=1 则会转发到https://www.jd.com/电器?name=1
}
location ^~ /s { # /会匹配到所有的
proxy_pass https://www.baidu.com; #proxy_pass 此处的url没有以/结尾,则匹配到的地址全部拼接到代理后的地址,例如,请求/s?name=1 则会转发到https://www.baidu.com/s?name=1
}
location / {# 会返回index.html
root /usr/share/nginx/html;
index index.html;
}
}