一、基于域名的虚拟服务器
nginx首先确定使用哪一个server域来处理请求,下面的例子中有3个虚拟服务器监听*:80端口。
server {
listen 80;
server_name nginx.org www.nginx.org;
...
}
server {
listen 80;
server_name nginx.net www.nginx.net;
...
}
server {
listen 80;
server_name nginx.com www.nginx.com;
...
}
在上面的配置中,nignx会根据HTTP请求“Host”的值,确定具体哪一个server接收web请求。如果“Host”不存在或者Host的值无法匹配任何sever中的$server_name,nginx就会把web请求送到默认的server中。如果没有定义default_server,默认将
请求传递给第一个server。
默认server的配置方法如下:
server {
listen 80 default_server;
server_name nginx.net www.nginx.net;
...
}
二、处理基于IP和域名的虚拟主机
server {
listen 192.168.1.1:80;
server_name nginx.org www.nginx.org;
...
}
server {
listen 192.168.1.1:80;
server_name nginx.net www.nginx.net;
...
}
server {
listen 192.168.1.2:80;
server_name nginx.com www.nginx.com;
...
}
上面的配置中,nginx首先匹配IP地址和端口,然后在确定响应IP下的server_name,如果没有找到任何匹配的
上例中没有定义默server,那么这个请求将被传递到第一个server中。
server_name,ngixn将请求传递给默认server。例如,当nginx收到来自 192.168.1.1:80
端口的请求www.nginx.com(无法匹配192.168.1.1下的任何一个server_name),
默认server的配置方法如下:
备注:nginx可以为不同的IP地址和端口定义多个默认server
eg:
server {
listen 192.168.1.1:80;
server_name nginx.org www.nginx.org;
...
}
server {
listen 192.168.1.1:80 default_server;
server_name nginx.net www.nginx.net;
...
}
server {
listen 192.168.1.2:80 default_server;
server_name nginx.com www.nginx.com;
...
}
三、如何处理PHP请求
待补充。。。。。