2017-09-01 74 views
0

我nginx的文件看起來像:捕獲特定的服務器上的nginx

server { 
    listen 443 ssl; 
    server_name local.awesome.com; 

    ssl_certificate /opt/certs/local.awesome.com.crt; 
    ssl_certificate_key /opt/certs/local.awesome.com.key; 

    location/{ 
     root /var/www/awesome.com/public_html/; 
     index index.html; 
    } 
} 
server { 
    listen 443 ssl; 
    server_name api.local.awesome.com; 

    ssl_certificate /opt/certs/local.awesome.com.crt; 
    ssl_certificate_key /opt/certs/local.awesome.com.key; 

    root /var/www/api.awesome.com/public_html/; 

    # Known locations for static resources 
    location /resources/ { 
    } 

    # Process all other requests via JS in index.html 
    location/{ 
     rewrite .* /index.html; 
     break; 
    } 

    location /api { 
     rewrite "^/api/(.*)$" /$1 break; 
     proxy_pass http://api:8001; 
    } 
} 

如果我查詢類似於:

GET https://api.local.awesome.com/api/ 

這工作得很好。

我決定把這個全局訪問共享一些數據。

我想請求:

GET https://192.168.1.3:443/api/ 

但是,這是行不通的。它返回HTTP/1.1 404 Not Found

該請求將返回403 Forbidden

GET https://192.168.1.3:443/ 

看起來一切都與授權,在這裏,但我希望以前的請求應該返回的東西從Not Found不同。

這裏有什麼問題以及如何更換:

GET https://api.local.awesome.com/api/ 

GET http://192.168.1.3:443/api/ 

如果架構或端口不同的是不適合我的關鍵。

有什麼建議嗎?

UPDATE:

curl -v http://192.168.1.3/api/ 
* Trying 192.168.1.3... 
* TCP_NODELAY set 
* Connected to 192.168.1.3 (192.168.1.3) port 80 (#0) 
> GET /api/ HTTP/1.1 
> Host: 192.168.1.3 
> User-Agent: curl/7.54.0 
> Accept: */* 
> 
< HTTP/1.1 301 Moved Permanently 
< Server: nginx/1.13.3 
< Date: Fri, 01 Sep 2017 18:55:05 GMT 
< Content-Type: text/html 
< Content-Length: 185 
< Connection: keep-alive 
< Location: https://192.168.1.3/api/ 
< 
<html> 
<head><title>301 Moved Permanently</title></head> 
<body bgcolor="white"> 
<center><h1>301 Moved Permanently</h1></center> 
<hr><center>nginx/1.13.3</center> 
</body> 
</html> 
* Connection #0 to host 192.168.1.3 left intact 
+0

您希望兩者同時工作還是僅工作一個? –

+0

這將足以只有一個工作的別名。 – smart

回答

1

更改下面

listen 443 ssl; 
server_name api.local.awesome.com; 

​​

listen 443 ssl; 
listen 80; 
server_name api.local.awesome.com 192.168.1.3; 

這將允許您使用http://192.168.1.3/api/

+0

它返回'HTTP/1.1 301永久移動'。我已經變成你的第二個建議。 – smart

+0

這是您發佈的完整配置,或者你有更多的東西也?也有什麼'捲曲-v HTTP的輸出:// 192.168.1.3/API /' –

+0

我已經更新了捲曲的響應的問題。這是一個配置文件中的所有的configs,但它看起來像80端口可以通過nginx的容器中使用:'泊塢窗PS | grep的nginx的 2258ae964073 nginx的:高山 「nginx的-g「守護......」 11小時前最多8分鐘0.0.0.0:80->80/tcp,0.0.0.0:443-> 443/tcp' – smart