Cześć, jestem nowicjuszem na nginx, próbowałem ustawić go na moim serwerze (z systemem Ubuntu 4), na którym już działa apache.
Więc po apt-get install
tym, próbowałem uruchomić nginx. Wtedy otrzymuję taką wiadomość:
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)
Ma to sens, ponieważ Apache używa portu 80.
Potem próbowałem zmodyfikować nginx.conf
, odsyłam do niektórych artykułów, więc zmieniłem to tak:
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";
}
Po zapisaniu tego i ponownej próbie uruchomienia nginx nadal pojawia się ten sam błąd, co poprzednio. Naprawdę nie mogę znaleźć powiązanego posta na ten temat, czy jacyś dobrzy ludzie mogą rozbić trochę światła?
Z góry dziękuję :)
================================================== =======================
Powinienem zamieścić całą zawartość w conf tutaj:
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;
}
}
W zasadzie nic nie zmieniłem poza dodaniem części serwerowej.
Odpowiedzi:
Musisz iść do
/etc/nginx/sites-enabled/
i jeśli jest to domyślna konfiguracja, to nie powinno być plik o nazwie:default
.Edytuj ten plik, definiując żądany port; w poniższym fragmencie obsługujemy instancję Nginx na porcie 81.
Aby uruchomić serwer, uruchom poniższą linię poleceń;
Możesz teraz uzyskać dostęp do aplikacji na porcie 81 (dla localhost, http: // localhost: 81 ).
źródło
sudo nginx -s reload
sudo service nginx restart
netstat
, nadal coś nasłuchuje na porcie 80. Masz jakiś pomysł?/etc/nginx/sites-available directory
Będziesz musiał zmienić konfigurację portu Apache lub Nginx. Po wykonaniu tej czynności konieczne będzie ponowne uruchomienie zrekonfigurowanych serwerów za pomocą użytego polecenia „service”.
Apache
Edytować
i zmień 80 w następującym wierszu na coś innego:
Jeśli po prostu zmienisz port lub dodasz tutaj więcej portów, prawdopodobnie będziesz musiał również zmienić instrukcję VirtualHost w
i zmień 80 w następującym wierszu na coś innego:
następnie uruchom ponownie przez:
Nginx
Edytować
i zmień 80 w następującym wierszu:
następnie uruchom ponownie przez:
źródło
Postępuj zgodnie z tym: Otwórz plik konfiguracyjny
Zmień numer portu, na którym nasłuchujesz;
Dodaj regułę do iptables
Zrestartuj IPtables
Zrestartuj serwer nginx
Uzyskaj dostęp do plików serwera nginx na porcie 81
źródło
Jeśli korzystasz z systemu Windows, poniższe ustawienia serwera związane z portami są obecne w pliku nginx.conf w folderze <ścieżka instalacji nginx> / conf .
Zmień numer portu i uruchom ponownie instancję.
źródło
Jeśli napotykasz ten problem podczas korzystania z platformy Docker, pamiętaj o zmapowaniu poprawnych numerów portów. Jeśli mapujesz port 81:80 podczas uruchamiania docker (lub przez docker-compose.yml), twój nginx musi nasłuchiwać na porcie 80, a nie 81, ponieważ docker już mapuje .
Sam spędziłem trochę czasu nad tym problemem, więc mam nadzieję, że przyda się to przyszłym pracownikom Google.
źródło