此贴为 《找人教我部署分布式单体项目上线(悬赏200元)》的下文。
今天国庆,本不该发贴打扰大家过节,可这一关卡得实在难受,就先把帖子发出来。
我目前的情况:
1、后端所需程序都已安装成功,后端所有微服务都已部署成功,接口访问成功;
2、前端门户网站项目(nuxt ) 也已经打包成镜像构建成容器运行起来了,浏览器中没有通过 nginx ,直接通过 http://172.16.100.7:3000/ 访问成功;
3、前端认证中心项目(负责登录、退出、注册 ),打包放到 /opt/nginx/html/jili20auth 目录下,经过 nginx 80 端口访问 , 访问成功。 因为构建 nginx 容器的时候,我把80端口挂载到了 这个目录 jili20auth ;测试登录功能,成功登录,并跳转到了配置好的门户网站首页 http://172.16.100.7:3000/ ;
可是测试 退出, 回调转发的地址没错 http://172.16.100.7/logout?redirectURL=http://172.16.100.7:3000/ , 但卡在了 nginx 这一关,接口 404 。 这是否跟 172.16.100.7:3000/ 没有通过 nginx 转发有关?
于是我开始在 nginx 配置文件中配置转发,可 server_name 这一项不知道该怎么填了。
我看过用顶级域名和二级域名配置转发的教程,可现在我没有域名,请问我现在应该怎么办?
下面是我的nginx 配置文件内容:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /opt/nginx/html/jili20auth;
index index.html index.htm; # 认证中心首页
try_files $uri $uri/ /index.html;
}
# 接口代理到认证中心,注意是 /pro-api/
location /pro-api/ {
# 代理转发后台网关接口,最后不要少了斜杠和分号
proxy_pass http://172.16.100.7:6001/;
}
server { # 博客权限管理客户端
listen 80;
server_name localhost; # 域名解析,没有二级域名这里怎么写?
location / { # 配置默认访问页
root /opt/nginx/html/jili20admin; # 后台管理根目录
index index.html index.htm; # 首页
try_files $uri $uri/ /index.html;
}
# 接口代理,注意是 /prod-api/ ,有 d
location /prod-api/ {
# 代理转发后台网关接口,最后不要少了斜杠和 ;
prosy_pass http://172.16.100.7:6001/;
}
server { # 博客门户客户端
listen 80; # 端口号
server_name 172.16.100.7; # 域名解析,没有二级域名这里怎么写?
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.16.100.7:3000; # 代理nuxt前端服务
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
一、后台管理客户端(生产环境配置),我不确定是对的。
/jili20-admin/.env.production
# just a flag
ENV = 'production'
# base api
VUE_APP_BASE_API = '/prod-api'
# 生产环境,后台管理中心的地址,注意: 以 VUE_APP_ 开头
#VUE_APP_AUTH_CENTER_URL = '//login.jili20.com'
VUE_APP_AUTH_CENTER_URL = '172.16.100.7'
# 认证信息保存到哪个 cookie 域中
#VUE_APP_COOKIE_DOMAIN = '.jili20.com'
VUE_APP_COOKIE_DOMAIN = '172.16.100.7'
二、门户网站客户端(生产环境配置),我确定是对的
jili20-web/nuxt.config.js
proxy: { // 代理转发
'/api': {
target: 'http://172.16.100.7:6001', // 网关地址
pathRewrite: {'^/api': ''} // 去掉 api
}
},
三、认证中心客户端(生产环境配置)
jili20-auth-center/.env.production
# 使用 VUE_APP_ 开头的变量会被 webpack 自动加载
# 定义请求的基础URL, 方便跨域请求时使用
# 注意:这里是 pro , 后台管理 Admin 的是 prod
VUE_APP_BASE_API = '/pro-api'
# cookie保存的域名,utils/cookie.js 要用
#VUE_APP_COOKIE_DOMAIN = '.jili20.com'
VUE_APP_COOKIE_DOMAIN = '172.16.100.7'
目前情况就这些。
经过不断的尝试和排查,我尝试在本地做域名映射,模拟服务器的域名解析,我现在终于在虚拟机中部署成功了。
我都怀疑你没看课程,阳光沙滩博客系统的课程部署不就有这些内容吗?