Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特色是占有内存少,并发能力强。html
下面就详细的说一说如何用Nginx实现反向代理。nginx
首先:来作点准备工做,最少两个tomcat,另外设置两个域名并解析到本地ip(由于nginx是直接配置域名)web
分别设置两个tomcat的/conf/server.xml中的端口号,以下segmentfault
tomcat1端口号分别设置为:8205 8280 8209浏览器
tomcat2端口号分别设置为:8215 8281 8219缓存
分别删除目录webapps下全部文件,新建一个文件夹ROOT,并在该目录下新建index.htmltomcat
内容能够设置为:这里是8280端口。(另外一个:这里是8281端口。)服务器
访问下面两个网址:并发
127.0.0.1/8280app
127.0.0.1/8281
若是可以访问到对应的index.html文件就说明tomcat配置且启动成功。
修改hosts文件,目的是为了设置2个域名, tomcat1.com和 tomcat2.com而且解析到本地ip:127.0.0.1
路径:C:\Windows\System32\drivers\etc
打开hosts文件,加上(若是修改后没法保存,能够把hosts文件复制到桌面,修改完成后再替换原有hosts文件)
添加内容以下:
127.0.0.1 tomcat1.com
127.0.0.1 tomcat2.com
127.0.0.1/8280;127.0.0.1/8281分别修改成
tomcat1.com:8280;tomcat2.com:8281
若是显示结果如上图所示,说明域名设置并解析成功。
下面开始正式配置Nginx服务器的方向代理。
输入网址:http://nginx.org/en/download.html ,选个合适的版本,下载后解压到合适的路径。
解压后,如图所示:nginx.exe能够直接运行,可是不建议。
打开/conf/nainx.conf文件,删除server{ …… },或者注销掉
从新添加server{ }
listen:监听的端口号
server_name: 访问域名
location :这里配置为/ 直接匹配端口下的默认ROOT下的项目,location内容很普遍,
参见:http://www.javashuo.com/article/p-firddlap-hx.html
proxy_pass :为项目的实际访问地址
server { listen 80; server_name tomcat1.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8280; index index.html index.htm; } } server { listen 80; server_name tomcat2.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8281; index index.html index.htm; } }
打开cmd.exe运行命令。
注意:必定要在nginx.exe文件所在的文件夹下操做。
H:\nginx-1.12.2>start nginx
或H:\nginx-1.12.2>nginx.exe
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其余命令操做。
H:\nginx-1.12.2>nginx.exe -s stop
或H:\nginx-1.12.2>nginx.exe -s quit
注:stop是快速中止nginx,可能并不保存相关信息;quit是完整有序的中止nginx,并保存相关信息。
H:\nginx-1.12.2>nginx.exe -s reload
当配置信息修改,须要从新载入这些配置时使用此命令。
H:\nginx-1.12.2>nginx.exe -s reopen
输入域名:tomcat1.com和tomcat2.com
若是输入域名后显示如上图,即为成功配置。
在使用的过程当中,你可能会遇到一个很奇葩的问题,就是当关闭命令执行了无数遍,页面却仍是能够直接用域名访问。
这个时候就说明你的进程并无真正关闭,咱们能够用命令来查询一下:
cmd中输入:netstat -an|find "0:80"
若是有,说明真的没有关闭这个进程。没有,那就看看是否是浏览器缓存的问题。
针对进程不能正常关闭,能够用以下命令来关闭:taskkill /F /IM nginx.exe > nul
以上就是用nginx服务器作反向代理服务器的所有内容,但愿对你有所帮助。
如需转载,请注明地址:http://www.cnblogs.com/j-star/p/8785334.html