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


128

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

Donc, après l'avoir apt-get installfait, j'ai essayé de démarrer nginx. Ensuite, je reçois le message comme celui-ci:

Starting nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

Cela a du sens car Apache utilise le port 80.

Ensuite, j'ai essayé de modifier nginx.conf, je fais référence à certains articles, donc je l'ai changé comme ceci:

   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 sauvegardé ceci et essayé de redémarrer nginx, j'obtiens toujours la même erreur que précédemment. Je ne trouve pas vraiment de message à ce sujet, est-ce que de bonnes personnes pourraient briser de la lumière?

Merci d'avance :)

==================================================== ========================

Je devrais poster tout le contenu de la conf 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 {
      See sample authentication script at:
      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;
     }
 }

En gros, je n'ai rien changé sauf l'ajout de la partie serveur.


Avez-vous le même message. Peut-être que le port avait changé pour un autre? Avez-vous essayé d'exécuter nginx via sudo?
dmr

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

Vous pouvez vous référer à ceci Utilisation de ports autres que 80 dans
NGINX

Vous pouvez vous référer à ceci Utilisation de ports autres que 80 dans
NGINX

Réponses:


182

Vous devez aller au /etc/nginx/sites-enabled/et si cela est la configuration par défaut, il devrait y avoir un fichier par nom: default.

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

server {
    listen 81;
}

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

sudo service nginx start

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


Sinon, si vous n'avez pas installé de service (OS X, généralement), vous pouvez exécuter: sudo nginx -s reload
John Paul Barbagallo

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

3
J'obtiens une erreur dans Chrome en essayant avec le port 81: "Cette page Web n'est pas disponible ERR_CONNECTION_TIMED_OUT" mais avec 80 fonctionne bien.
Darius.V

Je l'ai fait mais quand je cours netstat, il y a toujours quelque chose qui écoute sur le port 80. Avez-vous une idée?
Mustafa Chelik

Vérifiez également par défaut/etc/nginx/sites-available directory
Amit Teli

22

Vous devrez changer le port de configuration d'Apache ou de Nginx. Après cela, vous devrez redémarrer les serveurs reconfigurés à l'aide de la commande «service» que vous avez utilisée.


Apache

Éditer

sudo subl /etc/apache2/ports.conf 

et changez le 80 sur la ligne suivante en 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 changez le 80 sur la ligne suivante en quelque chose de différent:

<VirtualHost *:80>

puis redémarrez par:

sudo service apache2 restart

Nginx

Éditer

/etc/nginx/sites-enabled/default

et changez le 80 sur la ligne suivante:

listen 80;

puis redémarrez par:

sudo service nginx restart

20

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;

Ajouter 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éder aux fichiers du serveur nginx sur le port 81


1
Mon problème a été résolu en utilisant cette méthode qui vous ressemblait presque.
sinshiva

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

Le nom du fichier de configuration n'a pas d'importance, car tout le répertoire de configuration est généré.
sinshiva

3

Si vous êtes sur Windows , puis en dessous les paramètres du serveur sont liés à des ports présents dans le fichier nginx.conf à <nginx chemin d'installation> / conf dossier.

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

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


1

Si vous rencontrez ce problème lors de l'utilisation de Docker, assurez-vous de mapper les numéros de port corrects. Si vous mappez le port 81:80 lors de l'exécution de docker (ou via docker-compose.yml), votre nginx doit écouter sur le port 80 et non sur 81, car docker effectue déjà le mappage.

J'ai moi-même passé un certain temps sur cette question, alors j'espère que cela pourra aider les futurs googleurs.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.