Nginx请求转发
1.简介Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度,京东新浪、网易、腾讯、淘宝等2.安装nginx下载后解压到相应的路径中即可,不建议有路径中有中文。然后再根据具体要求更改配
1.简介
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度,京东新浪、网易、腾讯、淘宝等
2.安装nginx
下载后解压到相应的路径中即可,不建议有路径中有中文。
然后再根据具体要求更改配置文件,
启动nginx
进入nginx-1.12.2目录中,cmd打开,命令nginx.exe来启动nginx,关闭时关闭终端没用,要重新打开终端,用命令nginx.exe -s stop来关闭!
3.作用
1.请求转发
nginx反向代理适用于很多场合,以本项目中的服务为例
本项目中目前有两个服务,端口话分别为8001,8002,访问登录页面的时候利用8001端口,其他功能分别用不同的端口号,加上nginx后,就可以利用nginx的端口号9001来代理8001,8002端口号,只有9001暴漏出来。根据请求转发到不同的服务器中,nginx是怎么知道要相向哪个服务器转发呢,通常是使用,路径匹配的方式,也就是当访问8001端口的时候路径为/eduservice/user,8002端口的时候是/eduoss/file"所以如果请求的路径中存在,eduserive的话就转发到8001,如果请求的路径中有eduoss的话,就转发到8002中去。
2.配置nginx.conf
接下来根据以上要求配置文件---在解压目录中conf-->nginx.conf文件中,将listen 端口号改为81,原来的80可能有冲突。
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
下面配置代理
代理的端口号设置为9001,server_name 为本地localhost,
下面就是两个服务器的端口地址,8001和8002,并标注了相应该走的路径。
这样启动的时候就不会通过这两个端口号来访问,直接用代理端口号9001来访问。
server {
listen 9001;
server_name localhost;
location ~ /eduservice/ {
proxy_pass http://localhost:8001;
}
location ~ /eduoss/ {
proxy_pass http://localhost:8002;
}
}
3.测试
将后端两个端口号都启动
前端代码重新编译
启动nginx
登录页面原来是8001端口现在是9001
添加原来是8002,现在是9001端口
踩过的坑!
项目中LoginController和TeacherController是用同一个8001端口号,但是我手贱,把这两个父路径设置为两个了,@RequestMapping("/edu/user")和@RequestMapping("/eduservice/teacher"),但是我在nginx.conf中配置的根据路径/edu/来找8001端口号,启动的时候报跨域问题!!并且/eduservice/teacher/找不到,不能登录
改了后端路径,把前端相应的地方改了,再重启就好了!!!
更多推荐
所有评论(0)