我正在使用letsencrypt在我的koa2 API上设置HTTPS,使用this DigitalOcean指南的最后一部分。我正在使用nginx进行反向代理。一切都可以正常使用HTTP但是使用HTTPS我的路由被破坏了,因为这是我第一次设置HTTPS,所以我很难找到原因。例如,使用普通HTTP向List
发出请求,我会看到类似
<?php
/* Template Name: FirstStarRatingSystem */
?>
<div class="t1">
<button class="add_form_field">Add New Field <span style="font-
size:16px; font-weight:bold;">+ </span></button><br>
<input type="text" class="t1" name="fname1" id="text1" placeholder="First
Rating"></div>
<div class="rating1">
<legend>Please rate:</legend>
<input type="radio" class="rating1" id="star5" name="rating1" value="5" />
<label for="star5" title="Rocks!">5 stars</label>
<input type="radio" class="rating1" id="star4" name="rating1" value="4" />
<label for="star4" title="Pretty good">4 stars</label>
<input type="radio" class="rating1" id="star3" name="rating1" value="3" />
<label for="star3" title="Meh">3 stars</label>
<input type="radio" class="rating1" id="star2" name="rating1" value="2" />
<label for="star2" title="Kinda bad">2 stars</label>
<input type="radio" class="rating1" id="star1" name="rating1" value="1" />
<label for="star1" title="Sucks big time">1 star</label>
</div>
<br><br>
<br><br>
<br><br>
<div class="t2"></div>
<div class="rating2"></div>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
$(document).ready(function() {
var max_fields=2;
var t2=$(".t2");
var rating2=$(".rating2");
var add_button=$(".add_form_field");
var x=1;
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
if(x==2)
$(t2).append('<div class="t2"><input type="text" class="t2" name="fname2"
id="text2" placeholder="Second Rating"></div>'); //add input box
$(rating2).append('<div class="rating2"><legend>Please rate1:</legend>
<input type="radio" class="rating2" id="1star5" name="rating2" value="5" />
<label for="1star5" title="Rocks!">5 stars</label> <input type="radio"
class="rating2" id="1star4" name="rating2" value="4" /> <label for="1star4"
title="Pretty good">4 stars</label> <input type="radio" class="rating2"
id="1star3" name="rating2" value="3" /> <label for="1star3" title="Meh">3
stars</label> <input type="radio" class="rating2" id="1star2" name="rating2"
value="2" /> <label for="1star2" title="Kinda bad">2 stars</label> <input
type="radio" class="rating2" id="1star1" name="rating2" value="1" /> <label
for="1star1" title="Sucks big time">1 star</label><a href="#"
class="delete">Delete</a></div>'); //add 5 star rating.
}
else
{
alert('You Reached the limits')
}
});
$(rating2).on("click",".delete", function(e){
e.preventDefault();
$(t2).remove();
$(this).parent('div').remove();
x--;
})
});
</script>
<style>NECESSARY CSS</style>
使用HTTPS看起来像
http://myapi.com/api/some-route
request.url很时髦,缺少原始标头。我无法击中任何路线。我想知道我的nginx配置是否存在问题,但是很难搞清楚从哪里开始。
这是nginx配置,大多只是从the DigitalOcean guide
复制而来{
request: {
method: 'GET',
url: '/api/some-route',
header: {
'origin': 'https://myapi.com',
accept: '*/*'
}
}
答案 0 :(得分:0)
尾随斜杠在NGINX配置中具有特殊含义。我相信在proxy_pass
中添加一个尾部斜杠(或者更确切地说,一个以斜杠结尾的路径)会设置新的&#34; root&#34; NGINX用来将请求传递给。
因此,如果您使用http://localhost:3000/
,NGINX会将与https://your-site/api/some-route
匹配的请求传递给http://localhost:3000//some-route
(因为它使用/
作为新根。
如果您没有添加尾部斜杠,NGINX将按预期工作并将请求传递给http://localhost:3000/api/some-route
:
proxy_pass http://localhost:3000;