只有一个域名,一个端口,需要配置多个 site;
比如,我有一个 http://site/dire1 这样一个域名;
nginx的配置:
server {
listen 80;
server_name kgraph-admin;
location /dc {
alias /datayes/website/dc/;
}
// alias 寻找的路径就是 datayes/website/dc
// root , 那么 datayes/website/dc + urlPath(dc);
location /kgraph {
alias /datayes/website/kgraph/;
}
location /kgraph/report/template{
alias /datayes/website/kgraph/;
}
}
那么我的网站的根目录就是
在build 我们的站点的时候需要特别注意 base href:
- angular ng build --base-href /die1/kgraph/, 默认是 /
- react 需要在package home 里面指定 homepage:
base href 的作用,告诉整个网络的相对目录;比如 <img src=a.jpg>
那么会从 die1/kgraph/a.jpg 找文件
遇到刷新 angular url 404的问题;
最后还是 用 angular 的hash 方案比较合适;
import {HashLocationStrategy, LocationStrategy} from '@angular/common';
providers: [{
provide:LocationStrategy,
useClass:HashLocationStrategy,
}],
AD block 的坑
sx 的chrome 流浪起,有时候会block 我们的url,如果我们的url 包含如下的关键词:
https://easylist.to/easylist/easylist.txt.
,我的url 是portal 相关,竟然也被blocked:others。想着就非常sx;
多环境部署
现有的方案,在build的时候,指定 环境,比如env=prod/dev等,但是每次部署到不同环境都需要不一样的部署;
其实,我们更喜欢的是,由运维修改指定的配置问题见的方式; 在 java 等应用应用的比较多,或者是直接读取 consul等配置文件;
我们在 angular 中,使用 env.js 的文件,放在 index.html 同级目录下,当然也可以和 consul集成;
<script src="env.js"></script>
(function (window) {
window.__env = window.__env || {};
window.__env ={
"kgms_name":"Graphs",
"hugegraph_url":"http://10.20.205.167:8080",
"etl_name":"Graphs",
"etl_url":"http://localhost:9090"
}
window.__env.enableDebug = true;
}(this));
docker 部署的坑
我们一般期待在一个 docker 里面,部署一个 进程,比如跑一个 java,我们不会让java 在后台运行;
部署nginx 的时候,如果执行 nginx,太会在后台运行,会导致docker 直接 退出;
所以,我们会用 nginx -g "dameon off" 让他在前台运行;
我们这里又使用node 跑了一个服务,也就是 一个docker 两个进程,那么有一个必须在后台,有一个在前台;
比如: 前后关系倒是无所谓:
nohup node nb-portal/app.js &
echo "finish nodejs"
nginx -g "daemon off;"
echo "finish nginx"
对docker的理解不深,debug 就变得很漫长;
两个 nginx 代理设置
第一个:
server {
listen 80;
server_name kgraph-admin;
location ^~ /wx1/tonglian/ {
proxy_pass http://10.20.205.167/;
}
}
那么访问 我的 静态网站:
的地址:
http://wx1/tonglian/+++++
而代理服务又是不一样的;
我的第二个 代理设置:
location /kgml_eco_brain/report {
alias /home/lujing.sun/ningbo/src-cloud/;
}
location /kgml_eco_brain/portalApi {
proxy_pass http://127.0.0.1:8787 ;
}
最终的地址:
http://wx1/tonglian/ /kgml_eco_brain/report, 静态地址
服务的地址:
http:///kgml_eco_brain/portalApi
注意,在nginx中, location 的 /, 有很多种写法,会造成,你访问的时候,最终的地址不一样;
参考:
https://blog.csdn.net/u010509052/article/details/105455813
网友评论