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/找不到,不能登录

改了后端路径,把前端相应的地方改了,再重启就好了!!!

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐