一直听说nginx,最近把nginx找了些教程简单的学习了下。下面是简单的使用。
nginx:
Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
这里注意nginx也是一个服务器,大多是运行在linux,我们这里只是简单在windows上实践下,了解下nginx的应用。
反向代理:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
代理就是帮助别的应用来做一些事情,但是最后对外看到的是代理完成的。
举个简单个例子:
当我们去访问淘宝网的时候,我们访问的地址都是https://www.taobao.com/. 然后我们所有访问的子域名都是在这个域名之下,但是你有没有想过在双11的时候我们抢购的时候,淘宝的服务器竟然不会挂,难道淘宝用一台服务器,肯定不是的,这么大的数据量肯定是有非常多的服务器,甚至一个数据库的数据都会分开几台服务器来存储,可是我们访问的却只是一个域名啊。
这就是代理了,也就是我们访问的地址只是一个代理地址,这个服务器会根据请求转发到不同的服务器,对外来说我们看到的只是一个域名。
那怎么获取实际的ip地址呢,这个在后台方法里都有,这里具体就不讨论了。一般nginx转发的获取“X-Forwarded-For”的请求头应该就获取到了。
下面我们就开始说一下nginx的安装和使用
nginx安装和启动
官网下载:http://nginx.org/
下载完成后解压,解压后的目录如下图
进入nginx目录,命令行运行 start nginx即可启动。注意这里启动也就是一闪而过,打开任务管理器去进程里会看到实际已经启动起来了。
这时候直接访问就可以了。localhost(localhost:80默认为80)就会看到下面的页面。
这时候nginx就启动起来了。
nginx主要帮我们做的主要就是反向代理和负载均衡。我们下面简单的看下。
代理
在这里我们做一个简单的代理,我们将另外的服务器启动起来,比如tomcat或者其他的,然后我们把nginx的首页代理到这些地址。注意nginx的这些功能主要就是配置文件。配置文件会在参考文档中列出,配置文件的一些具体意义。我们在server里添加配置如下
我们添加了proxy_pass这个就是转发的地址了,这时候保存,命令行执行 nginx -s reload修改后重新加载。
在访问localhost就会直接跳转到tomcat的欢迎页了。
(Tips:如果跳转不成功,可以打开logs下的error.log查看错误信息,我遇到的错误如下图,是80端口被占用,查看端口发现是被skype占用,这里就可以改成其他端口,或者修改占用80的端口的应用)
这里只是一个代理,那么多个的话呢,想前面说的淘宝的,比如https://www.taobao.com, https://www.taobao.com/book,https://www.taobao.com/phone
这三个地址转发到不同的服务器呢。实现如下:
这样我们就能实现简单的转发,也能简单的理解nginx转发的使用。
负载均衡
通过负载均衡我们实现的就是对服务器压力的缓解均衡。其实具体的我也是不太清楚。简单的使用也是通过配置。这里不做过多说明。
参考文档: