配置nginx
nginx的配置文件: /usr/local/nginx/conf/nginx.conf
配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值
Server
解决监听的 ip/域名 端口 确定根路径
server {
listen 80;
server_name localhost;
root html;
index index.html index.htm;
}
listen 指监听端口,
server_name 用来指定IP或域名,多个域名对应统一规则可以空格分开,
index 用于设定访问的默认首页地址,
root 指令用于指定虚拟主机的网页跟目录,这个地方可以是相对地址也可以是绝对地址。
多个server时:
通过在主配置文件 nginx.conf 加上 include 指令包含进来。更便于管理。
include vhosts/*.conf; 把vhosts的文件都包含进去啦
location
将server的 root 和index 包含起来
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
匹配规则:
~ 波浪线表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= 进行普通字符精确匹配
匹配例子:
location = / {
# 只匹配"/". [ configuration A ]
}
location / {
# 匹配任何请求,因为所有请求都是以"/"开始 # 但是更长字符匹配或 者正则表达式匹配会优先匹配 [ configuration B ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并停止匹配 其它
location [ configuration C ]
}
location ~* .(gif|jpg|jpeg)$ {
# 匹配以 gif, jpg, or jpeg结尾的请求.
# 但是所有 /images/ 目录的请求将由 [Configuration C]处理.
[ configuration D ]
}
请求:/ -> 符合configuration A
/documents/document.html -> 符合configuration B
/images/1.gif -> 符合configuration C
/documents/1.jpg ->符合 configuration D
静态文件映射:
访问项目的配置文件主要有 root 和 aliasp’s 两个指令
alias
alias后跟的指定目录是准确的,并且末尾必须加 /
location /c/ {
alias /a/;
}
root
root后跟的指定目录是上级目录,并且该上级目录下要含有和location后指定名称的同名目录才行
location /c/ {
root /a/;
}
请求转发:
比如我要将所有的请求到转移到真正提供服务的一台机器的 8001 端口
location / {
proxy_pass 172.16.1.1:8001;
}
负载均衡:
vim /usr/local/nginx/conf/nginx.conf
在http模块中添加如下配置
upstream webservers {
server 127.0.0.1:8081 weight=10;
server 127.0.0.1:8082 weight=10;
}
server {
listen 80;
server_name test.nginx.com;
location / {
proxy_pass http://webservers;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
nginx 配置详情 解析
最新推荐文章于 2024-06-05 09:12:10 发布