俗话说,不能是为了工具而去学习,而是你需要了的时候,才去学习这个工具。我接触到nginx是因为普通的进入我的服务器实在是太慢了。而显然,nginx可以为我们的服务器提供些什么。
简介
nginx是一个高性能的http和反向代理服务器,也是一个smtp 邮箱协议服务器。
nginx是一款轻量级的web服务器,而tomcat就是重量级的web服务器。
这里我专门百度了一下,看了一看nginx与tomcat和apache server的区别。
nginx和apache server是http协议的服务器。http server所关心的一定也是http协议相关的内容,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能。客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)。通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,但是一个 HTTP Server 始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端,也就是发送 静态内容。
而tomcat这个application server,他更加重量级,包含的东西更加多。它首先需要支持开发语言的 Runtime环境(对于 Tomcat 来说,就是 Java),保证应用能够在应用服务器上正常运行。其次,需要支持应用相关的规范,例如类库、安全方面的特性。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。所以,tomcat是apache server的升级,因为他里面整合了http协议,也就是tomcat内容更多,他可以用在很多地方。而上面的两个专注于http协议的内容。
这也是为什么Nginx现在往往与Tomcat配合使用的原因。
特点
轻量级
并发能力强,只够支持高并发
高度模块化
负载均衡
代理
使用
需要去官网下载nginx,点击下载
里面会显示
选择你想使用的版本即可。
下载完成后进行配置,我是在windows版本上使用的。将压缩包解压后,打开nginx应用程序
他会一闪而过,然后网页输入localhost,如果成功就是welcome,失败就是error页面。
你也可以利用**tasklist /fi “imagename eq nginx.exe”**来看是否拥有这个进程。
配置
安装完成就是配置了,nginx的配置文件是在conf目录下的nginx.conf,默认配置的监听窗口是80,默认解开,所以我们才能localhost直接进入,你想要修改成其他端口号直接修改就好。
nginx -s stop fast shutdown
nginx -s quit graceful shutdown
nginx -s reload changing configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes
nginx -s reopen re-opening log files
上面是简单的nginx操作,当我们更改完配置后,我们不需要重新启动,直接reload就好了。
关闭
要知道,在你关闭cmd的时候,并不会关闭nginx,所以当我们下次在启动cmd时,他就找不到上一次的nginx程序,我们就可以使用windows自带的命令,taskkill /f /t /im nginx.exe,来全部关闭。
反向代理
nginx为我们提供了反向代理,也就是由nginx接手引导请求前往新的地方。所以可以写多个server来进行引导。
上面的意思是不同的端口号引导不同的内容,80号端口会由反向代理proxy_pass跳转到百度的页面。
而81端口号我将初始位置设置成了静态资源存储的位置。
负载均衡
将页面重新代理到cmc_server上,cmc_server里面写的就是服务器,就如我里面所写,我们可以配置多个服务器,nginx会根据权重进行分配,当localhost:8080崩掉的时候会跳转到另一个服务器。后面的参数weight就是权重,weight越高,被访问几率越大。
配置静态资源
将server里面的location的初始文件夹root改成你的静态资源文件夹。
然后根据你设置的ip地址进行访问就好了。