nginx虚拟主机的配置与使用

nginx虚拟主机的配置与使用

虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。

利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

基于域名的虚拟主机

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;server {listen  80;server_name www.morris.com;location / {echo 'www.morris.com';}}server {listen  80;server_name static.morris.com;location / {echo 'static.morris.com';}}
}

C:\Windows\System32\drivers\etc\hosts文件下添加如下内容:

10.0.3.137 www.morris.com
10.0.3.137 static.morris.com
10.0.3.137 static.morris.cn

演示结果如下:

$ curl -s http://www.morris.com
www.morris.comcurl -s http://static.morris.com
static.morris.com$ curl -s http://static.morris.cn
www.morris.com

总结:

  • 不同域名的请求可以发送到同一个nginx的端口上,nginx可以根据域名来对请求进行处理。
  • 如果是一个未知域名的请求,nginx默认使用第一个server来处理请求,也可以手动指定,如listen 80 default_server;

基于端口的虚拟主机

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;server {listen  80;location / {echo '80';}}server {listen  8080;location / {echo '8080';}}
}

测试结果如下:

$ curl -s http://10.0.3.137
80$ curl -s http://10.0.3.137:8080
8080

基于IP的虚拟主机

虚拟主机需要两个IP,可以使用ifconfig为虚拟主机增加IP:

ifconfig ens32:2 192.168.252.21
worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;server {listen  192.168.252.20:80;location / {echo '192.168.252.20:80';}}server {listen  192.168.252.21:80;location / {echo '192.168.252.21:80';}}
}

测试结果如下:

$ curl -s http://192.168.252.20
192.168.252.20:80$ curl -s http://192.168.252.21
192.168.252.21:80


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部