[英]Unable to set href in angular 4 on nginx server
請問我,因為這是一個很長的問題,但我被困住了。
目的
我想在基於Nginx的基於Linux的服務器上運行ssl配置的構建,我想在我的域https://dev.server.nl上使用資源/ ggmd / webconsole訪問它,即https://dev.server.nl/ ggmd / Web控制台
我遵循的步驟
我已經在webconsole文件夾的Linux服務器計算機上部署了我的angular 4構建。 路徑類似於/ opt / web / dev / ggmd / webconsole,我所有的構建文件都在其中。
我已經通過在默認文件中進行配置在nginx服務器上運行了。
server {
listen 4200 default_server;
root /opt/web/dev/ggmd/webconsole;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ /index.html;
}
}
而且我的基本href設置為<base href="/ggmd/webconsole/">
<!doctype html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<meta charset="utf-8">
<title>GGMD Console</title>
<base href="/ggmd/webconsole/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="scripts.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>
我在域上訪問UR1的映射配置如下:
location /ggmd/webconsole {
proxy_pass http://13.26.100.155:4200;
proxy_redirect http://13.26.100.155:4200 https://dev.w-integrate.nl/ggmd/webconsole;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
問題陳述
我重定向到我在我的角度路由器代碼中定義和制作的我的角度應用程序的404頁。
我在瀏覽器控制台中收到以下錯誤。
拒絕從inline.bundle.js'執行腳本,因為其MIME類型('text / html')不可執行,並且啟用了嚴格的MIME類型檢查。
當我從基本href中刪除“ / ggmd / webconsole / ”並重定向配置時,如下所示
<base href="/">
和我的重定向配置到以下
location / {
proxy_pass http://13.26.100.155:4200;
proxy_redirect http://13.26.100.155:4200 https://dev.w-integrate.nl/;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
然后,我可以在下面訪問我的項目
http://13.26.100.155:4200 (不適用於HTTPS)
但是我想在https和/ ggmd / webconsole資源https://dev.server.nl/ggmd/webconsole上運行它
我怎樣才能做到這一點? 如有任何輸入錯誤,請原諒。
編輯:解決方案
端口443已經與服務器標簽server {// configurations}下的其他一些證書一起使用
我在服務器標簽下面的服務器標簽中添加了我的配置,其中服務器標簽為端口443 ,基本href為“ /”
我的配置如下:
server {
listen 4200 ssl;
ssl_certificate /opt/web/dev/ggmd/webconsole/devcom.crt;
ssl_certificate_key /opt/web/dev/ggmd/webconsole/devcom.key;
root /opt/web/dev/ggmd/webconsole;
index index.html index.htm;
server_name dev.w-integrate.nl;
location /ggmd/webconsole(.*)$ {
proxy_pass https://83.96.205.55:4200;
proxy_redirect https://83.96.205.55:4200 https://dev.w-integrate.nl/ggmd/webconsole;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
try_files $uri $uri/ /index.html;
}
}
現在,我可以訪問https,但是正在發生以下情況:
通過IP https://13.26.100.155:4200/ggmd/webconsole
我通過角度路由被路由到我的角度應用程序的404頁,並且
通過反向代理https://dev.server.nl/ggmd/webconsole/
我被路由到Nginx的404頁
現在怎么了?
你能看一下這個文件是否有效
server {
listen 443 ssl;
server_name <YOUR_DOMAIN_NAME eg www.example.com>;
ssl_certificate /path/to/rapid_ssl.crt;
ssl_certificate_key /path/tp/cert/rapid_ssl.key;
location /ggmd/webconsole(.*)$ {
proxy_pass http://13.26.100.155:4200;
proxy_redirect http://13.26.100.155:4200 https://dev.w-integrate.nl/ggmd/webconsole;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
try_files $uri $uri/ /index.html;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.