Come avviare nginx tramite porta diversa (diversa da 80)


128

Ciao, sono un principiante di nginx, ho provato a configurarlo sul mio server (con Ubuntu 4), che ha già apache in esecuzione.

Quindi, dopo apt-get installaverlo provato, ho cercato di avviare nginx. Quindi ricevo il messaggio in questo modo:

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)

Questo ha senso dato che Apache sta usando la porta 80.

Quindi ho provato a modificare nginx.conf, faccio riferimento ad alcuni articoli, quindi l'ho modificato in questo modo:

   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";
        }

Dopo averlo salvato e provare a riavviare nginx, ottengo ancora lo stesso errore di prima. Non riesco davvero a trovare un post correlato su questo, qualche brava gente potrebbe fare luce?

Grazie in anticipo :)

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

Dovrei pubblicare tutto il contenuto in conf qui:

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;
     }
 }

Fondamentalmente, non ho cambiato nulla tranne l'aggiunta della parte server.


Hai lo stesso messaggio. Il porto potrebbe essere cambiato in un altro? Hai provato a eseguire nginx tramite sudo?
dmr

Per centos, questo link potrebbe aiutare serverfault.com/questions/566317/…
vintuwei

Puoi fare riferimento a questo Utilizzo di porte diverse da 80 in NGINX
Shomaail

Puoi fare riferimento a questo Utilizzo di porte diverse da 80 in NGINX
Shomaail

Risposte:


182

Devi andare alla /etc/nginx/sites-enabled/e se questa è la configurazione di default, quindi ci dovrebbe essere un file per nome: default.

Modifica quel file definendo la porta desiderata; nello snippet di seguito, stiamo servendo l'istanza Nginx sulla porta 81.

server {
    listen 81;
}

Per avviare il server, eseguire la riga di comando seguente;

sudo service nginx start

È ora possibile accedere all'applicazione sulla porta 81 (per localhost, http: // localhost: 81 ).


In alternativa, se non hai installato il servizio (OS X, di solito) puoi eseguire: sudo nginx -s reload
John Paul Barbagallo il

Potrebbe essere necessario riavviare se nginx è già in esecuzionesudo service nginx restart
depicus il

3
Ricevo un errore in Chrome quando provo con la porta 81: "Questa pagina web non è disponibile ERR_CONNECTION_TIMED_OUT" ma con 80 funziona bene.
Darius.V,

L'ho fatto ma quando corro netstat, c'è ancora qualcosa in ascolto sulla porta 80. Ne hai idea?
Mustafa Chelik,

Controlla anche il valore predefinito in/etc/nginx/sites-available directory
Amit Teli

22

Dovrai cambiare la porta di configurazione di Apache o Nginx. Dopo aver fatto ciò, dovrai riavviare i server riconfigurati, usando il comando 'service' che hai usato.


Apache

modificare

sudo subl /etc/apache2/ports.conf 

e cambia l'80 nella riga seguente in qualcosa di diverso:

Listen 80

Se cambi semplicemente la porta o aggiungi più porte qui, probabilmente dovrai anche cambiare l'istruzione VirtualHost in

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

e cambia l'80 nella riga seguente in qualcosa di diverso:

<VirtualHost *:80>

quindi riavviare:

sudo service apache2 restart

nginx

modificare

/etc/nginx/sites-enabled/default

e cambia l'80 sulla seguente riga:

listen 80;

quindi riavviare:

sudo service nginx restart

20

Segui questo: Apri il tuo file di configurazione

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

Cambia il numero di porta su cui stai ascoltando;

listen       81;
server_name  localhost;

Aggiungi una regola a iptables

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

Riavvia IPtables

 service iptables restart;

Riavvia il server nginx

service nginx restart

Accedi ai file del server nginx sulla porta 81


1
Il mio problema è stato risolto usando questo metodo che era quasi simile a te.
sinshiva,

A proposito: il nome file corretto per nginx sotto Windows sarebbe conf \ nginx.conf
Johnny Bigoode,

Non importa quale sia il nome del file conf in quanto l'intera directory di configurazione proviene.
sinshiva,

3

Se siete su Windows, allora sotto le impostazioni del server relative porte sono presenti nel file di nginx.conf a <nginx percorso di installazione> / conf cartella.

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

Modificare il numero di porta e riavviare l'istanza.


1

Se si riscontra questo problema durante l'utilizzo di Docker, assicurarsi di mappare i numeri di porta corretti. Se si mappa la porta 81:80 quando si esegue la finestra mobile (o tramite docker-compose.yml), nginx deve ascoltare sulla porta 80 non 81, poiché la finestra mobile esegue già la mappatura.

Ho trascorso un po 'di tempo su questo problema, quindi spero che possa essere di aiuto per i futuri googler.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.