配置文件
配置
在nginx/conf中有一个nginx.conf的配置文件
最小配置
worker_processes 1; 默认为1,表示开启一个业务进程,一般填写服务器物理核心数,因为填多了也没啥用反而会造成负担
events > worker_connections 1024; 每一个worker进程可以创建多少个连接
http > include mime.types; 引入mime配置文件,这个文件的作用就是告诉游览器请求的内容该以什么形式进行输出,如:访问一个图片文件返回显示图片不是由后缀决定的,而是由mime决定的,里面放着后缀名以及对应的返回方式
http > default_type application/octet-stream; 表示没有在mime中匹配到后缀名,所以就让客户端进行下载
http > sendfile on; 数据零拷贝
http > server:
# 虚拟主机
server {
# 监听端口
listen 80;
# 当前的主机名(域名、主机名)
server_name localhost;
# 主机名后面跟的地址
location / {
# 从哪个目录下去寻找(路径)
root html;
# 默认页
index index.html index.htm;
}
# 发生错误有如下的错误码会转向到某个地址
# 如:发生500错误,跳转到/50x.html
error_page 500 502 503 504 /50x.html;
# 从html目录中去寻找50x.html的文件
location = /50x.html {
root html;
}
}
解释
一个server代表一个主机,可以有多个主机
可以在同一个端口中设置多个虚拟主机,但是主机名不能一样,相同的端口号和相同的主机名是冲突的。如:a.cn:80 指向的是a页面,b.a.cn:80 指向的是b页面两个用的都是80端口
一个server可以写多个server_name,方式为:server_name 域名1 域名2; 使用空格隔开
匹配
在多个server中的server_name是由先后顺序的,从上到下先匹配到那个就使用那个,不会再往下面继续匹配
通配符匹配
配置域名的时候支持通配符(*
)的方式进行配置域名,如:*.a.cn
通配符结束匹配
跟上面的差不多,只不过这次通配的是顶级域,如:www.a.*
也可以使用正则表达式进行匹配
动静分离
适用于中小型网站
场景:用户访问服务器只是为了获取一些静态资源,但是nginx会把请求转发到tomcat中,这样就会造成tomcat去返回大量的静态资源造成没必要的资源浪费,所以要让nginx去分担一些没必要的压力
配置
server {
listen 80;
server_name localhost;
# tomcat的配置
location / {
proxy_pass http://localhost:8080;
}
# 静态资源的配置
location /css {
root html;
}
location /image {
root html;
}
location /js {
root html;
}
}
以上就是最简单对静态资源的分离
/css
比/
的优先级要高
使用正则表达式
在上面的方式比较臃肿,有多个文件夹就要写多个location,在此可以使用正则表达式进行匹配
在Nginx的配置文件中,正则表达式通常以~
或~*
开头。这些前缀用于指示Nginx使用正则表达式匹配URI。
~
:表示区分大小写的正则表达式匹配。~*
:表示不区分大小写的正则表达式匹配。
server {
listen 80;
server_name localhost;
# tomcat的配置
location / {
proxy_pass http://localhost:8080;
}
# 静态资源的配置(正则)
location ~*/(css|js|image)$ {
root html;
}
}
以上就是使用正则表达式进行怕匹配