Je cours une production d'API REST basée sur Play Framework 2.5.10. C'est en cours de routage inverse NGINX, je suis en mesure d'atteindre tous les points de fin GET, mais je reçois un délai d'attente sur tous les points de terminaison POST, tout cela consomme JSON. S'il vous plaît noter que sur l'environnement de développement fonctionne très bien et je suis capable d'atteindre tous ces points de terminaison, mais en production, je reçois un délai d'attente sur POST que ce soit en se connectant via IP ou via route inverse DNS.Lecture du point de terminaison POST Framework renvoyé Time Out - 504
Tout pointeur dans la résolution de ceci est très apprécié.
server {
listen 80;
server_name subdomain.domain.com;
location/{
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://xxx.xxx.xxx.xxx:3000;
}
}
Route essayant d'accéder
POST /auth controllers.Application.authenticate()
Ai-je besoin de définir toutes les routes sur nginx?
Ajouté auth code
@BodyParser.Of(BodyParser.Json.class)
public Result authenticate(){
JsonNode json = request().body().asJson();
EncryptUtil secure = null;
secure=EncryptUtil.getSecurityUtility();
String command = "login";
String logincommand = json.findPath("command").asText();
if (logincommand.equals(command)){
String email = json.findPath("email").textValue();
String password = json.findPath("password").textValue();
Logger.info("Passwords::"+password+"\t"+secure.getEncryptedUserPassword(password.trim()));
UserAccount user=UserAccount.findByEmail(email);
if(user!=null){
if(!(secure.getDecryptedUserPassword(user.password).equals(password))){
return status(400,"Invalid credentials");
}else {
if (user.accountstatus == Boolean.FALSE){
result.put("error","Account Deactivated Contact Admin");
return status(400,"Account Deactivated Contact Admin");
} else {
String authToken = user.createToken();
ObjectNode authTokenJson = Json.newObject();
authTokenJson.put(AUTH_TOKEN, authToken);
response().setCookie(Http.Cookie.builder(AUTH_TOKEN, authToken).withSecure(ctx().request().secure()).build());
JsonNode userJson = Json.toJson(user);
return status(200,userJson);
}
}
}
else{
result.put("Error", "Invalid User");
Logger.info(result.toString());
return status(400,"Invalid Credentials");
}
} else{
return globalFunctions.returnBadRequest(command);
}
}
Partagez la méthode pour l'action POST (dans votre automate) ainsi que la section correspondante de nginx conf. – marcospereira
@marcospereira J'ai posté l'information que vous avez demandée. – Seroney
Pouvez-vous confirmer que les demandes POST arrivent réellement dans votre application? Pourriez-vous également publier le code pour la méthode 'authenticate'? – marcospereira