1.nginx的简单介绍
nginx是一个轻量级的web服务器、反向代理服务器,同时也提供电子邮件代理服务。其特点是占有内存少,并发能力强。
2.关于反向代理
反向代理是指对服务器进行代理,我们客户端只需对代理服务器进行访问,剩下的事情则交给代理服务器,由其对被代理的服务器进行选择访问,被代理的服务器将结果返回给代理服务器,代理服务器再将结果返回给我们的客户端。
3.nginx的反向代理的使用案例
我们以通过域名访问自己本地电脑上的一个javaweb项目为案例进行简单地使用,那么该如何实现呢?
- 1.首先我们需要在本机的hosts文件中进行域名和ip地址的映射。可以使用swtichhosts工具方便的进行配置。
- 2.我们的web项目是对应了端口号的,可以通过“域名:端口号”访问到相应的web项目。但是我们该如何省略掉端口号,而直接方便地通过域名就可以访问到web项目。
- 3.我们进入nginx的安装目录,进入conf文件夹,找到nginx.conf文件,打开。在该文件中添加如下配置
server {
listen 80;
server_name 这里写你设置的域名;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass 这里写被代理的web服务的地址和端口;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
- 4.按下win+R键,然后输入cmd,进入黑窗口,用cd命令进入nginx安装文件夹,输入start nginx命令开启nginx(关闭时可以使用nginx -s stop命令快速关闭或者nginx -s quit命令平稳有序地关闭)。
- 5.启动我们的web项目,发现可以直接通过之前在hosts文件中设置的域名访问到web项目了。
访问执行流程
由于nginx对80端口进行了监听,而我们在浏览器中输入域名时不加端口号的话默认访问80端口,那么我们直接输入域名进行访问时,nginx监听到我们的请求,然后按照其nginx.conf文件中我们配置的域名与目标服务地址和端口的绑定关系帮我们将请求信息交给被代理的web项目,然后被代理的web项目再将结果返回给nginx,nginx再将结果返回给我们的浏览器。