Comment exécuter des scripts CGI sur Nginx

j'ai un problème de réglage des scripts CGI pour être exécuté sur Nginx, jusqu'à présent, j'ai trouvé http://wiki.nginx.org/SimpleCGI ce genre de choses mais le problème c'est que je ne peux pas faire de script perl exécuter en tant que service, de sorte qu'il s'exécute en arrière-plan et même en cas de redémarrage, il démarrera automatiquement

avez-vous une idée? Je dirige Centos 5!--3-->

j'ai trouvé des solutions ici mais je n'ai pas pu intégrer le code donné là avec c'Perl script Je suis complètement nul à Perl, s'il vous plaît aidez-moi Merci

18
demandé sur Community 2012-07-26 14:36:43

4 réponses

Nginx est un serveur web. Vous avez besoin d'utiliser un serveur d'application pour votre tâche, comme uWSGI par exemple. Il peut parler avec nginx en utilisant son interface binaire native très efficace appelée uwsgi.

11
répondu VBart 2012-07-26 21:33:05

Nginx n'a pas de support CGI natif (il supporte fastCGI à la place). La solution typique pour cela est d'exécuter votre script Perl comme un processus fastCGI et d'éditer le fichier de configuration nginx pour rediriger les requêtes vers le processus fastCGI. C'est une solution assez complexe si tout ce que vous voulez faire est d'exécuter un script CGI.

devez-vous utiliser nginx pour cette solution? Si tout ce que vous voulez faire est d'exécuter des scripts Perl CGI, envisagez D'Utiliser Apache ou Lighttpd car ils viennent avec des modules CGI qui traite vos scripts CGI nativement et n'exige pas que le script soit exécuté en tant que processus séparé. Pour ce faire, vous devez installer le serveur web et éditer le fichier de configuration du serveur web pour charger le module CGI. Pour Lighttpd, vous devrez ajouter une ligne dans le fichier de configuration pour activer le traitement des fichiers CGI. Mettez ensuite les fichiers CGI dans le dossier cgi-bin.

12
répondu David Farrell 2012-07-26 11:22:54

installer un autre serveur web(Apache, Lighttpd) qui tourne sur un port différent. Puis activez votre requête CGI sur le serveur Web avec nginx.

Vous avez juste besoin de l'ajouter à la configuration nginx, après avoir installé un serveur web sur 8080

location /cgi-bin {
    proxy_pass http://127.0.0.1:8080
}

Bonne Chance

11
répondu Burak Tamtürk 2012-07-31 09:21:29

j'ai trouvé ce hack en utilisant FastCGI un peu plus agréable que d'exécuter un autre serveur web. http://nginxlibrary.com/perl-fastcgi/

2
répondu Alton Yu 2017-11-08 18:28:58