首页 > 代码库 > Nginx学习笔记03虚拟机与代理
Nginx学习笔记03虚拟机与代理
1.1. 虚拟机
使用Nginx的配置文件中的server结点,可以很方便的在一个nginx实例中支持多个虚拟机。
前提条件:主机有多个域名。
本次试验中用到的主机192.168.197.101有三个域名:
ng.coe2coe.me
计划指向的网站目录为nginx目录下的html目录
ng101a.coe2coe.me
计划指向的网站目录为nginx目录下的host目录下的ng101a.coe2coe.me目录。
首页内容中含有主机名称ng101a.coe2coe.me。
ng101b.coe2coe.me
计划指向的网站目录为nginx目录下的host目录下的ng101b.coe2coe.me目录。
首页内容中含有主机名称ng101b.coe2coe.me。
nginx.conf配置如下:
server {
listen 8000;
server_name ng.coe2coe.me;
location / {
root html;
index index.html;
}
}
server {
listen 8000;
server_name ng101a.coe2coe.me;
location / {
root host/ng101a.coe2coe.me;
index index.html;
}
}
server {
listen 8000;
server_name ng101b.coe2coe.me;
location / {
root host/ng101b.coe2coe.me;
}
执行nginx -s reload后进行测试:
ng.coe2coe.me:
ng101a.coe2coe.me:
ng101b.coe2coe.me:
1.2. 代理
在location结点使用proxy_pass配置项可以将访问nginx服务器的http请求转接到其它http服务器并将该服务器的相应结果返回给浏览器。
以下配置中,将访问.jpg图片的请求转发到tomcat101b.coe2coe.me服务器,将/hello/开头的请求转发到tomcat101a.coe2coe.me服务器。二者皆为tomcat服务器。
server {
listen 8000;
server_name ng.coe2coe.me;
location / {
root html;
index index.html;
}
location ~ \.jpg$ {
proxy_pass http://tomcat101b.coe2coe.me:8081;
}
location ~ ^/hello/ {
index index.jsp;
proxy_pass http://tomcat101a.coe2coe.me:8080;
}
}
运行测试:
tomcat101a和tomcat101b服务器上的首页内容重点是:显示一行文字:
host:tomcat server a或tomcat server b。
显示test.jpg图片。
图片中显示的是一行类似的文字。
(1)单独访问tomcat101a服务器。
(2)单独访问tomcat101b服务器:
(3)使用Nginx访问:
从上述结果可以看到,nginx成功的将test.jpg图片请求转接到了tomcat101b.coe2coe.me服务器上,而将/hello/应用其它页面转接到了tomcat101a.coe2coe.me服务器上了。这说明nginx的代理功能的基本配置成功。
Nginx学习笔记03虚拟机与代理