nginx常用配置-I
摘要
主要介绍一些常用的配置选项,以及一些可能遇到坑。
http server部分
http的server部分,是一个监听的重要部分,server是http节点下的一个重要的部分,server定义了http监听的端口,访问路径及规则。
配置一个静态服务器
我们来看一下一个简单的配置
http {
server {
listen 81;
location / {
root /opt/zfsoft/front/;
index index.html;
}
}
}
上面就配置了一个简单的静态服务器,监听的端口是81,访问的根路径会指向root下的目录文件,当直接使用 / 访问时,默认查找root下的index.html文件,其他的访问路径,都会去查找当前路径下相应的文件名。
比如 访问 /a.html ,则会去/opt/zfsoft/front/下查找 a.html文件,找到a.html文件,则返回 a.html文件的内容,若未找到,则返回404错误,并显示一个错误信息(由nginx定义)。
如果要自定义显示404或者500信息,则可以增加如下配置
error_page 404 /404.html;
当前配置与location平级,合起来的配置信息如下:
http {
server {
listen 81;
location / {
root /opt/zfsoft/front/;
index index.html;
}
error_page 404 /404.html;
}
}
同样的道理,我们也可以配置相似的500错误。可以使用如下方式error_page 500 502 503 /50x.html
进行配置,同样的是在根目录下找相应的文件。
此处,可以这样理解,在触发了404或者500 502 503 等错误码时,nginx会自动重定向到相应的页面,比如/404.html /50x.html的访问,再次通过location指令找到相应的文件来返回给前端进行展示。
配置一个反向代理
说完了一个静态页面的配置,毕竟我们的系统不是一个简单的html页面的系统,还有一些后台需要进行交互的操作或者数据,那么,我们要访问一些动态数据,虽然可以在前端页面写死一些url请求的地址,但这样,不就把我们的后台交互地址给暴露出去了吗,还有就是,如果我们把相同的程序给其他人用,或者需要迁移到其他的后台服务上,难道又要把所有的地址替换一遍。
不不,不要那么粗鲁,我们可以使用反向代理的方式来解决这个问题,可以直接在页面上写根据当前路径或者从根路径进行访问的地址,如/hello请求,当请求到达服务器端时,由于nginx监听着相应的端口,nginx就接收到了当前的访问,当去location指令下的根目录去查找hello文件时,发现没有当前文件,就会抛出404,噢,不对,我们忘记加配置信息了。
那么,由于/hello请求不是一个静态的地址,而是另一个服务器的URL请求,需要转发到相应的服务器上,那么,为了不让nginx抛出404错误,那么,我们就要增加相应的/hello的请求路径,让它能找到相应的服务。
location /hello{
proxy_pass http://192.168.2.12:8080/;
}
有了如上的配置,proxy_pass 指令就把当前的请求通过http请求的方式去请求http://192.168.2.12:8080/hello。
后续
先介绍些简单的nginx配置,敬请期待后续。