nginx配置 

我的nginx包目录如下重点关注nginx.conf和leadnews.conf,我们只对这两个进行修改

 这是总的nginx.conf(对应上图的nginx.conf),因为服务太多把配置全放在一个文件很乱,并且不好管理所以我们在nginx.conf中这样配置,这里只是进行文件的读取,核心的代理配置都放在leadnews.conf文件夹下面

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
	# 引入自定义配置文件,把所以微服务的配置放到leadnews.conf文件夹下,然后加载全部的.conf即可读取到全部的配置文件
    include leadnews.conf/*.conf;
}

 这是leadnews.conf文件夹下的admin.conf文件,在

# upstream是服务群,使用反向代理的时候会用到
upstream  heima-admin-gateway{
# 这里我们网关的地址是 localhost:6001
    server localhost:6001;
}

server {
    # listen 是要监听的端口号
	listen 8803;
# 匹配location根路径下的所有 root是匹配进来从哪找相应的网页 是相对路径,index是访问location/默认
# 匹配的网页
	location / {
		root E:/heimatoutiao/admin-web/;
		index index.html;
	}
# 匹配 location ~/service_6001 下的所有并代理到heima-admin-gateway,会把service_6001后面的uri
# 转发给heima-admin-gateway
	location ~/service_6001/(.*) {
		proxy_pass http://heima-admin-gateway/$1;
		proxy_set_header HOST $host;  # 不改变源请求头的值
		proxy_pass_request_body on;  #开启获取请求体
		proxy_pass_request_headers on;  #开启获取请求头
		proxy_set_header X-Real-IP $remote_addr;   # 记录真实发出请求的客户端IP
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  #记录代理信息
	}
}

nginx配置:当访问localhost:8803 端口时候跳转到 admin-web下的 index.html 页面(如下图),然后就点登录,登录会发送 http://localhost:8803/service_6001/admin/login/in 的post请求,该请求匹配到了我们的代理,代理会把admin/login/in这块uri转发给gateway网关

gateway + nacos网关配置

 (补充:微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。但如果尚未读取application.yml,又如何得知nacos地址呢?因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程如下:

 需要把经常变更的配置信息进行热部署放到nacos中,所以去nacos中根据文件名去找对应的配置文件,这里根据bootstrap文件中

spring.cloud.nacos.server-addr获取nacos地址,再根据

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id,来读取配置。

 这是在nacos中配置的网关信息,(一定要注意嵌套顺序,对齐,我就是因为没对齐找了半天没找到

spring:
  cloud:
    gateway:
      globalcors:
        add-to-simple-url-handler-mapping: true
        corsConfigurations:
          '[/**]':
            allowedHeaders: "*"
            allowedOrigins: "*"
            allowedMethods:
              - GET
              - POST
              - DELETE
              - PUT
              - OPTION
      routes:
        # 用户微服务
        - id: admin
          uri: lb://leadnews-admin
          predicates:
            - Path=/admin/**
          filters:
            - StripPrefix= 1

然后在leadnews-admin中配置数据库连接信息

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐