154 votes

Comment démarrer nginx via un port différent (autre que 80)

Bonjour, je suis un novice sur nginx, j'ai essayé de le configurer sur mon serveur (sous Ubuntu 4), qui a déjà apache en cours d'exécution.

Donc après avoir fait un apt-get install, j'ai essayé de démarrer nginx. Ensuite, j'ai reçu le message suivant :

Démarrage de nginx: le fichier de configuration /etc/nginx/nginx.conf est correct
le test du fichier de configuration /etc/nginx/nginx.conf est réussi
[emerg]: bind() sur 0.0.0.0:80 a échoué (98: Address already in use)
[emerg]: bind() sur 0.0.0.0:80 a échoué (98: Address already in use)
[emerg]: bind() sur 0.0.0.0:80 a échoué (98: Address already in use)
[emerg]: bind() sur 0.0.0.0:80 a échoué (98: Address already in use)
[emerg]: bind() sur 0.0.0.0:80 a échoué (98: Address already in use)

Cela a du sens car Apache utilise le port 80.

Ensuite, j'ai essayé de modifier nginx.conf, j'ai consulté quelques articles, alors je l'ai modifié comme suit :

   server {

        listen       8080;

        location / {
         proxy_pass  http://xx.xx.xx.xx:9500;
         proxy_set_header   Host             $host:8080;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";
        }

Après avoir enregistré cela et essayé de démarrer nginx à nouveau, j'ai toujours la même erreur qu'auparavant. Je ne trouve pas vraiment de publication liée à ce sujet, est-ce que des bonnes âmes pourraient éclairer ma lanterne ?

Je devrais poster tout le contenu du fichier de configuration ici :

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

   server {

        listen       81;

        location / {
         proxy_pass  http://94.143.9.34:9500;
         proxy_set_header   Host             $host:81;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";
        }

    }
}

 mail {
      Voir un exemple de script d'authentification sur :
      http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript

      auth_http localhost/auth.php;
      pop3_capabilities "TOP" "USER";
      imap_capabilities "IMAP4rev1" "UIDPLUS";

     server {
         listen     localhost:110;
         protocol   pop3;
         proxy      on;
     }

     server {
         listen     localhost:143;
         protocol   imap;
         proxy      on;
     }
 }

Fondamentalement, je n'ai rien changé sauf en ajoutant la partie serveur.

0 votes

Avez-vous le message same? Peut-être que le port a été changé pour un autre ? Avez-vous essayé d'exécuter nginx via sudo ?

0 votes

Pour centos, ce lien pourrait vous aider serverfault.com/questions/566317/…

0 votes

Vous pouvez vous référer à Utiliser des ports autres que le 80 dans NGINX

216voto

Chamith Malinda Points 741

Vous devez vous rendre dans le /etc/nginx/sites-enabled/ et si c'est la configuration par défaut, il devrait y avoir un fichier nommé : défaut.

Modifiez ce fichier en définissant le port désiré ; dans l'exemple ci-dessous, nous servons l'instance Nginx sur le port 81.

serveur {
    écoute 81;
}

Pour démarrer le serveur, exécutez la commande ci-dessous ;

sudo service nginx start

Vous pouvez désormais accéder à votre application sur le port 81 (pour localhost, http://localhost:81).

0 votes

Sinon, si vous n'avez pas le service installé (OS X, en général) vous pouvez exécuter: sudo nginx -s reload

0 votes

Vous devrez peut-être redémarrer si nginx est déjà en cours d'exécution sudo service nginx restart

3 votes

Je reçois une erreur dans Chrome en essayant avec le port 81 : "Cette page web n'est pas disponible ERR_CONNECTION_TIMED_OUT" mais avec le port 80 ça fonctionne bien.

27voto

sinshiva Points 357

Suivez ceci: Ouvrez votre fichier de configuration

vi /etc/nginx/conf.d/default.conf

Changez le numéro de port sur lequel vous écoutez;

listen       81;
server_name  localhost;

Ajoutez une règle à iptables

 vi /etc/sysconfig/iptables 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT

Redémarrez IPtables

 service iptables restart;

Redémarrez le serveur nginx

service nginx restart

Accédez à vos fichiers de serveur nginx sur le port 81

1 votes

Ma question a été résolue en utilisant cette méthode qui était presque similaire à la vôtre.

0 votes

FYI: Le nom de fichier correct pour nginx sous Windows serait conf\nginx.conf

1 votes

Peu importe quel est le nom du fichier de configuration car tout le répertoire de configuration est sourcé.

22voto

MarcoS Points 31

Vous devrez modifier le port de configuration d'Apache ou de Nginx. Après cela, vous devrez redémarrer les serveurs reconfigurés, en utilisant la commande 'service' que vous avez utilisée.


Apache

Modifier

sudo subl /etc/apache2/ports.conf 

et changer le 80 sur la ligne suivante par quelque chose de différent :

Listen 80

Si vous changez simplement le port ou ajoutez plus de ports ici, vous devrez probablement également modifier l'instruction VirtualHost dans

sudo subl /etc/apache2/sites-enabled/000-default.conf

et changer le 80 sur la ligne suivante par quelque chose de différent :

puis redémarrez par :

sudo service apache2 restart

Nginx

Modifier

/etc/nginx/sites-enabled/default

et changer le 80 sur la ligne suivante :

listen 80;

puis redémarrez par :

sudo service nginx restart

4voto

skvp Points 777

Si vous êtes sur Windows, les paramètres de serveur liés au port ci-dessous sont présents dans le fichier nginx.conf situé dans le dossier /conf.

server {
    listen       80;
    server_name  localhost;
....

Modifiez le numéro de port et redémarrez l'instance.

4voto

thephper Points 254

Si vous rencontrez ce problème en utilisant Docker, assurez-vous de mapper les bons numéros de port. Si vous mappez le port 81:80 lors de l'exécution de Docker (ou à travers docker-compose.yml), votre nginx doit écouter sur le port 80 pas 81, car Docker effectue déjà le mapping.

J'ai moi-même passé pas mal de temps sur ce problème, donc j'espère que cela pourra aider les futurs chercheurs sur Google.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X