我正在尝试将Web应用程序部署到服务器上。我将html文件放在一个文件夹中,并且我在同一台服务器上运行了django服务器。我正在使用nginx为后端设置反向代理,但是由于某些原因,我无法路由到后端网址。
这是我的nginx配置:
<!-- PHP Form validation script -->
<?
// declare and empty local variables
$nameErr = $messageErr = $emailErr = $subjectErr = "";
$name = $message = $email = $subject = "";
var_dump($_SERVER);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required and can only contain alphabet text";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Roman Alphabet and Spaces Only";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email address is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Please Correct Invalid Email Address";
}
}
if (empty($_POST["subject"])) {
$subjectErr = "Subject Cannot be Empty";
} else {
$subject = test_input($_POST["subject"]);
}
}
if (empty($_POST["message"])) {
$messageErr = "Message Cannot be Empty";
} else {
$message = test_input($_POST["message"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form method="post" action="
<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="p-5 bg-white">
<div class="mb-3 border-bottom">
<h2 class="h4 text-black mb-5">
Send us a Message
</h2>
<p>
Note that All Fields are Required
</p>
</div>
<div class="row form-group">
<div class="col-md-12 mb-3 mb-md-0">
<label class="text-black" for="name"><font color="red" size="+2">
*
</font>Your Name</label>
<input type="text" id="name" class="form-control" value="
<?php echo $name ?? '';?>">
<span class="list-group-item-danger"><?php echo $nameErr ?? '';?></span>
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label class="text-black" for="email"><font color="red" size="+2">
*
</font>Your Email Address</label>
<input type="email" id="email" class="form-control" value="
<?php echo $email ?? '';?>">
<span class="list-group-item-danger"><?php echo $emailErr ?? '';?></span>
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label class="text-black" for="subject"><font color="red" size="+2">
*
</font>Subject</label>
<input type="subject" id="subject" class="form-control" value="
<?php echo $subject ?? '';?>">
<span class="list-group-item-danger"><?php echo $subjectErr ?? '';?></span>
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label class="text-black" for="message"><font color="red" size="+2">
*
</font>Your Message</label>
<textarea name="message" id="message" cols="30" rows="7" class="form-control" placeholder="Your message here..." value="
<?php echo $message ?? '';?>"></textarea>
<span class="list-group-item-danger"><?php echo $messageErr ?? '';?></span>
</div>
</div>
<div class="row form-group">
<div align="center" class="col-md-12">
<input type="submit" value="Send Message" class="btn btn-primary btn-md text-white">
</div>
</div>
</form>
在第一块中。我将后备设置为index.html,因为它是一个有角度的应用程序。 角度应用程序运行正常。
但是我无法访问反向代理服务器的路由,每当我使用 / api / something 命中路由时,它将带我回到有角度的应用程序即index.html >
答案 0 :(得分:0)
这很简单,我必须像这样修改路径块
location ~^/(admin|api) {
proxy_pass http://unix:/run/gunicorn.sock;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}