Tabla de contenido
1 sitio virtual de Nginx
Entorno: implementar varios sitios en un servidor
1.1 Formas de implementar el alojamiento virtual
- Basado en IP: IP diferente
- Según el puerto: misma IP, puerto diferente
- Basado en el nombre de dominio: misma IP, mismo puerto, nombre de dominio diferente
基于域名:相同的IP,相同的端口,不同的域名
charset utf-8;
server {
listen 80;
server_name baidu.yan.com; //baidu是主机域
location / {
root /html/baidu;
index index.html;
access_log /var/log/nginx/baidu.access.log main;
}
location /baidu_status {
stub_status;
}
}
server {
listen 80;
server_name jingdong.yan.com; //京东是主机域
location / {
root /html/jingdong;
index index.html;
access_log /var/log/nginx/jingdong.access.log main;
}
}
2 Ubicación de Nginx
Utilice la ubicación de Nginx para controlar la ruta al sitio web
2.1 Clasificación de prioridad de sintaxis de ubicación
Fósforo | Reglas coincidentes | prioridad |
---|---|---|
= | Coincidencia exacta | 1 |
^ ~ | Empiece con una cuerda | 2 |
~ | Coincidencia regular sensible a mayúsculas y minúsculas ** | 3 |
~ * | Coincidencia regular que no distingue entre mayúsculas y minúsculas ** | 4 |
~! | Normal que distingue entre mayúsculas y minúsculas | 5 |
! ~ * | Regular que no distingue entre mayúsculas y minúsculas | 6 |
/ | Coincidencia general, cualquier solicitud será coincidente ** | 7 |
2.2 Configurar la prioridad de ubicación de verificación del sitio
server {
listen 88;
server_name localhost;
location / {
default_type /test/html;
index index.html;
return 200 "location /";
}
location = / {
default_type /test/html;
index index.html;
return 200 "location = /";
}
location ~ / {
default_type /test/html;
return 200 "location ~ /";
}
}
2.3 Escenarios de aplicación de ubicación
#通用匹配,任何请求都会匹配到
location / {
}
#严格区分大小写,匹配以.php结尾的都走这个location
location ~ \ .php$ {
fastcgi_pass http://127.0.0.1:9000
}
#严格区分大小写,匹配.jsp结尾的都走location
location ~ \ .jsp$ {
porxy_pass http://127.0.0.1:8080;
}
#不区分大小写匹配,只要用户访问.jpg.gif.png,js,css都走这条location
location ~* .*\ .(jgp|gif|png|js|css)$ {
rewrite (.*) http://cdn.odlboyedu.com$request_uri;
}s
#不区分大小写匹配
location ~* "\ .(sql|bak|tgz|tar.gz)$" {
default_type text/html;
return 403 "启用访问控制成功"
}