Hallo, ich bin ein Neuling bei Nginx. Ich habe versucht, es auf meinem Server (unter Ubuntu 4) einzurichten, auf dem bereits Apache ausgeführt wird.
Nachdem ich apt-get install
es geschafft hatte, versuchte ich, Nginx zu starten. Dann bekomme ich folgende Nachricht:
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)
Dies ist sinnvoll, da Apache Port 80 verwendet.
Dann habe ich versucht zu ändern nginx.conf
, ich verweise auf einige Artikel, also habe ich es so geändert:
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";
}
Nachdem ich dies gespeichert und versucht habe, nginx erneut zu starten, wird immer noch der gleiche Fehler wie zuvor angezeigt. Ich kann keinen verwandten Beitrag dazu finden. Könnten gute Leute etwas Licht ins Dunkel bringen?
Danke im Voraus :)
================================================== =======================
Ich sollte den gesamten Inhalt in conf hier posten:
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 habe ich nichts geändert, außer den Serverteil hinzuzufügen.
Antworten:
Sie müssen zu gehen
/etc/nginx/sites-enabled/
und wenn dies die Standardkonfiguration ist, sollte es eine Datei mit Namen geben :default
.Bearbeiten Sie diese Datei, indem Sie den gewünschten Port definieren. Im folgenden Snippet wird die Nginx-Instanz auf Port 81 bereitgestellt.
Führen Sie die folgende Befehlszeile aus, um den Server zu starten.
Sie können jetzt über Port 81 auf Ihre Anwendung zugreifen (für localhost http: // localhost: 81 ).
quelle
sudo nginx -s reload
sudo service nginx restart
netstat
, lauscht immer noch etwas auf Port 80. Haben Sie eine Idee?/etc/nginx/sites-available directory
Sie müssen den Konfigurationsport von Apache oder Nginx ändern. Nachdem Sie dies getan haben, müssen Sie die neu konfigurierten Server mit dem von Ihnen verwendeten Befehl 'service' neu starten.
Apache
Bearbeiten
und ändern Sie die 80 in der folgenden Zeile in etwas anderes:
Wenn Sie hier nur den Port ändern oder weitere Ports hinzufügen, müssen Sie wahrscheinlich auch die VirtualHost-Anweisung in ändern
und ändern Sie die 80 in der folgenden Zeile in etwas anderes:
dann neu starten durch:
Nginx
Bearbeiten
und ändern Sie die 80 in der folgenden Zeile:
dann neu starten durch:
quelle
Gehen Sie folgendermaßen vor: Öffnen Sie Ihre Konfigurationsdatei
Ändern Sie die Portnummer, die Sie abhören.
Fügen Sie iptables eine Regel hinzu
Starten Sie IPtables neu
Starten Sie den Nginx-Server neu
Greifen Sie auf Ihre Nginx-Serverdateien über Port 81 zu
quelle
Wenn Sie unter Windows arbeiten, sind die folgenden portbezogenen Servereinstellungen in der Datei nginx.conf im Ordner <nginx-Installationspfad> / conf vorhanden .
Ändern Sie die Portnummer und starten Sie die Instanz neu.
quelle
Wenn dieses Problem bei der Verwendung von Docker auftritt, müssen Sie die richtigen Portnummern zuordnen. Wenn Sie Port 81:80 beim Ausführen von Docker (oder über docker-compose.yml) zuordnen, muss Ihr Nginx Port 80 und nicht 81 überwachen , da Docker die Zuordnung bereits durchführt.
Ich habe selbst einige Zeit mit diesem Thema verbracht, also hoffe ich, dass es für zukünftige Googler hilfreich sein kann.
quelle