2012-05-31 9 views
96

Hallo Ich bin ein Neuling auf Nginx, ich habe versucht, es auf meinem Server (Ubuntu 4), die bereits Apache ausgeführt hat.Wie starte ich nginx über einen anderen Port (außer 80)

Also nachdem ich apt-get install es, ich habe versucht, nginx zu starten. Dann erhalte ich die Meldung wie folgt aus:

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) 

diesem Sinne als Apache macht, wird über Port 80.

Dann habe ich versucht nginx.conf zu ändern, ich einige Artikel verweisen, so habe ich es etwa so:

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

Nach dem Speichern und versuchen, nginx erneut zu starten, bekomme ich immer noch den gleichen Fehler wie zuvor. Ich kann nicht wirklich einen verwandten Artikel darüber finden, könnten gute Leute etwas Licht zerfetzen?

Vielen Dank im Voraus :)

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

Ich sollte den gesamten Inhalt in conf hier veröffentlichen :

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

Grundsätzlich änderte ich nichts außer den Server-Teil hinzugefügt wird.

+0

Haben Sie _same_ Nachricht. Kann sein, dass Port zu einem anderen gewechselt hat? Hast du versucht, Nginx über Sudo zu starten? – dmr

+0

Für Centos könnte dieser Link http://serverfault.com/questions/566317/nginx-no-permission-to-bind-port-8090-but-it-binds-to-80-and-8080 – vintuwei

Antwort

130

Sie müssen zu/etc/nginx/sites-enabled/und wenn dies die Standardkonfiguration ist, dann sollte es eine Datei namens "default" sein.

bearbeiten die Datei und setzen (Wenn Sie bereit sind, für nginx 81 als Port zu setzen)

Server { hören 81; }

Der starten Sie den Server

sudo Service nginx starten

Dann localhost Zugriff: 81

+8

+1 helfen um zu erwähnen, dass der Nginx-Dienst tatsächlich gestartet werden muss. Es ist nicht sofort offensichtlich, dass es getan werden muss. – vbocan

+0

Alternativ, wenn Sie nicht Service installiert haben (OS X, in der Regel) können Sie ausführen: 'sudo nginx -s reload' –

+0

Sie müssen möglicherweise neu starten, wenn Nginx bereits ausgeführt wird 'sudo service nginx restart' – depicus

15

Sie das configure-Port entweder Apache oder Nginx ändern müssen . Nachdem Sie dies getan haben, müssen Sie die neu konfigurierten Server mit dem von Ihnen verwendeten Befehl 'service' neu starten.


Apache

bearbeiten

sudo subl /etc/apache2/ports.conf 

und die 80 in der folgenden Zeile auf etwas anderes ändern:

Listen 80 

Wenn Sie nur den Hafen oder fügen Sie mehr ändern Ports hier, werden Sie wahrscheinlich auch das V ändern müssen

<VirtualHost *:80> 

dann neu starten: irtualHost Anweisung in

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

und die 80 in der folgenden Zeile auf etwas anderes ändern

sudo service apache2 restart 

Nginx

bearbeiten

/etc/nginx/sites-enabled/default 

und die 80 auf der folgenden Zeile:

listen 80; 

starten durch:

sudo service nginx restart 
+0

sehr glücklich mit Ihren Änderungen imsheth. Tnx. –

13

Folgen dies: Ihre Konfigurationsdatei öffnen

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

Ändern Sie die Portnummer, auf der Sie gerade hören.

listen  81; 
server_name localhost; 

Fügen Sie eine Regel zu iptables

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

Restart IPtables

service iptables restart; 

Starten Sie den nginx Server

service nginx restart 

Zugang yr nginx-Server-Dateien auf Port 81

+0

Mein Problem wurde mit dieser Methode gelöst, die dir fast ähnlich war. – Shivam

+0

http://stackoverflow.com/users/3710715/shivam Warum markierst du nicht eine der Antworten als Antwort ;-) –

+0

Weil ich die Frage nicht gestellt habe. Also, ich denke, kann keine der Antworten als Antwort markieren :) – Shivam

Verwandte Themen