使用nginx起环境踩坑

郝泽龙_HZ

前言:

本周是第一次使用nginx来起环境进行测试,在开始的时候不知道项目中nginx.conf文件的作用,便还是像以前一样直接ng s起前台环境,同时起后台环境。

一、不指明后台访问端口:

启前台和后台环境后并未查看环境变量的更改,报错:
image.png

思考:前台端口不是4200吗,为何请求后台的也变成4200?

去查看了前台environment环境变量:

image.png

环境变量中没有指明后台访问地址和端口号!

全局搜索4200:三个有关的文件

image.png
第一处为readme文件,可以排除它并不会起作用
第二处为前台源地址,与后台请求无关

第三处在开始并不了解,就想着将4200改成后台端口8080试试:
无反应!

在仔细看了该配置文件后开始疑惑:

server {
    listen 8005;

    server_name 127.0.0.1 localhost;
    # 限制上传文件大小,保证该值小于等于nginx.conf -> http 中的client_max_body_size值
    client_max_body_size 20M;

    location / {
        proxy_pass http://127.0.0.1:4200;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /sockjs-node/ {
        proxy_pass http://127.0.0.1:4200/sockjs-node/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:8081/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

难道和后台请求端口有关的不是第三个吗?因为location为定位,猜测是将/api/用如下的进行替代:http://127.0.0.1:8081/
那为啥前台向后台访问的是4200呢?

心浮气躁:

幼稚的我竟然把后台端口改成了4200:
image.png

接下来就出了一系列的问题:
1.访问localhost:4200首先让我登陆
2.我登陆成功或者点取消都会再报404
如下图
image.png
image.png
在后台控制台中看到:
image.png
除此之外还有 No mapping for GET /等等。。。。

当我直接通过url访问login,resetPassword等方法都成功,开始怀疑难道spring Security失效了?

除此之外也想了是不是自己前台的问题,去了解了前台的启动过程。反正就是盲目的找!

总之:做了很多无用功

问老师:

当前使用了nginx,你需要改成nginx转发:转发配置都在nginx.conf文件:
此处就不介绍在启动nginx时自己的一些迷惑操作了!

具体操作:

通过include方式,将项目中的nginx.conf文件添加到/usr/local/etc/nginx/nginx.conf文件中,如下图:
image.png

使用nginx -t:查看引入的配置是否生效,查看是否有导入的nginx.conf
成功后使用nginx -s reload:重新启动nginx

此时我们打开监听的端口8005,便会首先打开前台端口:
image.png

总结:

nginx此处的作用主要是反向代理:
如下图,当我们访问127.0.0.1:8005/或者localhost:8005/,则定位到http://127.0.0.1:4200,也就是我们的前台地址。
将监听我们设置的地址,当发起请求时,匹配特定的规则。最后再将请求的结果返回给我们监听的地址。
image.png

版权声明

本文作者:河北工业大学梦云智开发团队 - 郝泽龙

阅读 128
86 声望
10 粉丝
0 条评论
你知道吗?

86 声望
10 粉丝
宣传栏