原文链接:https://github.com/helloyoucan/knowledge
worker_processes 1; #开启的进程数,默认1
events {
worker_connections 1024; #每个worker进程的最大连接数
}
http {
sendfile on;# 使用sendfile系统调用来传输文件
#(1)tcp_nodelay off,会增加通信的延时,但是会提高带宽利用率。在高延时、数据量大的通信场景中应该会有不错的效果
#(2)tcp_nodelay on,会增加小包的数量,但是可以提高响应速度。在及时性高的通信场景中应该会有不错的效果
tcp_nodelay on;
keepalive_timeout 30;#client的keep-alive连接超时时间,这里30是3秒
include /etc/nginx/mime.types; #导入配置
default_type application/octet-stream;#请求的文件木有在服务器中定义mime类型映射,使用default_type
gzip on;#gzip 压缩Nginx实时文件
gzip_static on;#优先发生.gz的文件,找不到则再进行gzip压缩,以避免重复的压缩无谓的消耗资源
server {
listen 8080; # listen命令设置nginx监听地址,对于IP协议,这个地址就是address和port,对于UNIX域套接字协议,这个地址就是path,一条listen指令只能指定一个address或者port,address也可以是主机名
server_name localhost; #指示服务器的所有名称
root /usr/share/nginx/app; #指定请求的文档根目录
autoindex on;#Nginx默认是不允许列出整个目录的,启用这个可以打开目录浏览功能
autoindex_exact_size off; #on:显示出文件的确切大小,单位是bytes;off:显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on; #off:显示的文件时间为GMT时间;on:显示的文件时间为文件的服务器时间
location / { #通过指定模式来与客户端请求的URI相匹配;基本语法如下:location [=|~|~*|^~|@] pattern{……}
#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
# $uri:这个变量指当前的请求URI,不包括任何参数(见$args)
try_files $uri $uri/ @router; #按顺序检查文件是否存在,返回第一个找到的文件。结尾的斜线表示为文件夹 -$uri/。如果所有的文件都找不到,会进行一个内部重定向到最后一个参数。
index index.html index.htm;
}
#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
#因此需要rewrite到index.html中,然后交给路由在处理请求资源
location @router {
rewrite ^.*$ /index.html last; #实现URL重定向的重要指令,他根据regex(正则表达式)来匹配内容跳转到replacement,结尾是flag标记
}
location ^~/graphql/ {
proxy_pass http://47.107.168.243:9090/; #后端代理的指令;要提供域名或ip地址和端口外,还需要提供协议
}
}
}