[RUBY] Possibilité lors du déploiement sur EC2 mais rien n'est affiché dans le journal des erreurs

environnement

Ruby 2.5.1 Rails 5.2.4.3

J'ai terminé le processus de déploiement sur AWS en me référant à l'article ici, mais lorsque j'y ai accédé depuis un navigateur, il a échoué avec «Impossible de se connecter à ce site». Je vais ...

(Note) L'article auquel j'ai fait référence est très facile à comprendre et n'est pas la faute de l'article.

Vérifions le journal faisant référence à l'article pour voir ce qui ne va pas.

Environnement serveur(/var/www/rails/nom de l'application/)


cd log
tail -n 30 production.log
スクリーンショット 2020-06-26 16.18.13.png

Pour une raison quelconque, je ne trouve rien comme une erreur dans le journal. Cela n'avait pas de sens au début, mais après un certain temps, j'ai pensé qu'il pourrait ne pas être accessible depuis le navigateur.

Je vais donc essayer d'accéder directement à http en utilisant curl.

$ curl -IXGET http://adresse IP/
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.2
Date: Sat, 27 Jun 2020 05:09:57 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://adresse IP/

301 est renvoyé. Apparemment, l'accès à http a été redirigé vers https sans autorisation. J'ai osé accéder à https avec curl.

$ curl -IXGET https://adresse IP/
curl: (7)Échec de la connexion au port d'adresse IP 443: Connection refused

J'étais en colère que 433 ports ne soient pas disponibles. Certes, le groupe de sécurité n'a pas défini 433, c'est donc naturel.

J'ai donc ajouté 433 à la règle entrante du groupe de sécurité, et lorsque j'y ai accédé depuis un navigateur via http, la page s'est ouverte avec https! (Impressionnant)

Cependant, l'objectif initial est maintenant de l'ouvrir avec http au lieu de https ...

résultat

La cause de la redirection de http vers https était la description suivante dans /config/environments/production.rb.

/config/environments/production.rb


config.force_ssl = true

Il semble que cela ait été écrit lors de sa conversion en SSL dans le déploiement heroku avant ... Avec cela, il semble rediriger vers https pour la conversion SSL.

Vous pouvez donc le réparer localement, mais il est difficile de pousser ou de cloner, donc pour le moment, réécrivez la description dans le serveur et vérifiez-la.

$ cd /var/www/rails/Ticket-Rec/config/environments/
$ vi production.rb

Modifié comme suit

/config/environments/production.rb


config.force_ssl = false

Redémarrer la licorne

$ ps -ef | grep unicorn | grep -v grep
hiroki 2031 1 0 26 juin?      00:00:02 unicorn_rails master -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production
hiroki 2036 2031 0 26 juin?      00:00:00 unicorn_rails worker[0] -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production
hiroki 2038 2031 0 26 juin?      00:00:00 unicorn_rails worker[1] -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production

$ kill 2031
$ bundle exec unicorn_rails -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production

Redémarrez nginx

$ sudo service nginx restart

Quand j'ai à nouveau accédé à http avec curl, 200 étaient retournés!

$ curl -IXGET http://adresse IP/
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sat, 27 Jun 2020 05:27:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
ETag: W/"03411acbf679047381b99fd0eda2307c"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _myapp_session=%2Fj%2FMy4fzeeSRY3imIh%2FCkJg94SzoshjfdaYZhZcEzF4i%2BxXXUZiYY8M%2Flre%2F6TAAvXqfyrr5sJ8ke2aOlhh4o8i6xsMfO7Ubp7LvUQnAxB9gm%2FbQ8Gc%2BLPzZAxcL9OgDLvQaocLN1MTSz6XKaDM%3D--1h9%2FJNHiHiktaWNU--CJuK9RUucx3dkTVkQpjYLg%3D%3D; path=/; HttpOnly
X-Request-Id: 9d2ee01e-fa05-40ae-8959-6e9b40f9b3e1
X-Runtime: 0.005877

En fait, ouvrez-le dans le navigateur

navigateur


http://adresse IP/

J'ai pu accéder à l'application en toute sécurité! Toutes nos félicitations!

Cependant, si vous le faites après cela, après tout

/config/environments/production.rb


config.force_ssl = true

Il semble être réglé sur lol

Cependant, j'ai découvert la raison pour laquelle il n'était pas connecté.

référence

[Expliqué soigneusement avec des images] Comment télécharger l'application Rails sur AWS (EC2) à partir de zéro [Partie 1 ~ Réseau, paramètre d'environnement RDS ~]

Recommended Posts

Possibilité lors du déploiement sur EC2 mais rien n'est affiché dans le journal des erreurs
Lorsque le projet n'est pas affiché dans eclipse
Erreur lors du déploiement d'EC2
[Erreur] L'application ne s'affiche pas dans l'environnement de production
Que faire lorsque «Échec du chargement de la bibliothèque partagée JNI» s'affiche dans Eclipse
Lorsqu'il n'y a pas de sortie vers stdout dans le journal du docker
Erreur lors du déploiement d'EC2 avec CircleCI
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
Il doit être identique à l'exemple lors de la connexion à Twitter, mais une erreur se produit jusqu'à la résolution
[Rails] À propos de l'erreur selon laquelle l'image n'est pas affichée dans l'environnement de production
Erreur lors de la finalisation du membre de la classe Entity utilisé dans SpringWebFlux
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
[Rails] Que faire lorsque l'image Refile n'est pas affichée lors de l'écriture du traitement au moment de l'erreur de routage
Comment résoudre l'erreur'ActionView :: Template :: Error (L'actif "application.css" n'est pas présent dans le pipeline d'actifs. '"Lors de la précompilation d'actifs Rails
[Heroku] Comment résoudre lorsqu'une erreur est affichée par git push heroku master
Comment définir quand "Le constructeur Empty () n'est pas visible" se produit dans junit
Lorsque Eclipse ne parvient pas à démarrer le serveur
Le message d'erreur du périphérique ne s'affiche pas correctement.
[Java] Quelque chose est affiché comme "-0.0" dans la sortie
Comment définir le niveau de journalisation à afficher dans la version commerciale de orhanobut / logger
Que faire lorsque l'adresse déjà utilisée est affichée après l'exécution des rails
Un avertissement s'affiche lorsque vous essayez d'utiliser un entier énorme avec les variables spéciales $ 1, $ 2, $ 3 ...
Quand le survol d'Eclipse est difficile à voir
Je veux intégrer n'importe quel TraceId dans le journal
Aucun message d'erreur ne s'affiche lorsque l'action de création échoue
Comment effectuer un processus spécifique lorsque le bouton de retour est enfoncé dans le fragment Android
Comment résoudre le problème lorsque la valeur n'est pas envoyée lorsque le formulaire est désactivé dans les rails et envoyé
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
Comment régler chrony lorsque le temps change dans CentOS7
Que faire si FacesMessage est défini mais pas affiché
L'idée de couper quand l'erreur n'est pas résolue
Une erreur se produit lorsque codedeploy-agent est installé dans Ubuntu Server 20.04
Comment obtenir le journal lorsque install4j ne démarre pas
Comportement lorsque chacun est exécuté dans la plage inverse
Le journal de journalisation n'est pas généré lorsque l'application serveur est fermée
[Rails] Que faire lorsque l'erreur Aucune base de données sélectionnée et Base de données inconnue apparaît dans db: migrate
Patch Monkey pour renvoyer l'heure actuelle lorsqu'une chaîne vide est spécifiée dans Time.parse de Ruby
[Débutant en programmation] Que faire lorsque les rails deviennent une erreur dans l'environnement de développement local
Comment résoudre le problème que l'image du site Web ne s'affiche pas après le déploiement sur heroku dans Rails 5
Paramètres à effectuer lorsque HTML ou JSP est formaté dans Eclipse et que la mise en page devient décevante
Lancer une exception et attraper lorsqu'il n'y a pas de gestionnaire correspondant au chemin au printemps
Que faire lorsque vous souhaitez connaître la position source où la méthode est définie dans binding.pry
Je veux rendre le cadre de la zone de texte rouge lorsqu'il y a une erreur de saisie
Comment résoudre le problème de non-sortie du journal de connexion lorsque l'application Web est arrêtée
Fonction statique pour vérifier si l'erreur RVB de BufferdImage est dans le rapport spécifié en Java
Que faire lorsque javax.el.ELException: Pas une expression de méthode valide: s'affiche lorsque l'écran JSF est affiché