Привет, я новичок в nginx, я попытался настроить его на своем сервере (под управлением Ubuntu 4), на котором уже запущен apache.
После apt-get install
этого я попытался запустить nginx. Затем я получаю такое сообщение:
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)
Это имеет смысл, поскольку Apache использует порт 80.
Затем я попытался изменить nginx.conf
, я ссылаюсь на некоторые статьи, поэтому я изменил его так:
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";
}
После сохранения и попытки снова запустить nginx я все равно получаю ту же ошибку, что и раньше. Я не могу найти соответствующую публикацию об этом, могут ли хорошие люди пролить немного света?
Заранее спасибо :)
================================================== =======================
Я должен опубликовать весь контент в conf здесь:
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;
}
}
В принципе, я ничего не менял, кроме добавления серверной части.
Ответы:
Вы должны пойти к
/etc/nginx/sites-enabled/
и если это конфигурация по умолчанию, то должен быть файл по имени:default
.Отредактируйте этот файл, указав желаемый порт; в приведенном ниже фрагменте мы обслуживаем экземпляр Nginx через порт 81.
Чтобы запустить сервер, запустите командную строку ниже;
Теперь вы можете получить доступ к своему приложению через порт 81 (для localhost http: // localhost: 81 ).
источник
sudo nginx -s reload
sudo service nginx restart
netstat
, все еще что-то слушает на 80-м порту. У вас есть идеи?/etc/nginx/sites-available directory
Вам нужно будет изменить порт настройки Apache или Nginx. После этого вам нужно будет перезапустить перенастроенные серверы, используя использованную вами команду «service».
апаш
редактировать
и измените 80 в следующей строке на другое:
Если вы просто измените порт или добавите здесь больше портов, вам, вероятно, также придется изменить оператор VirtualHost в
и измените 80 в следующей строке на другое:
затем перезапустите:
Nginx
редактировать
и измените 80 в следующей строке:
затем перезапустите:
источник
Следуйте этому: откройте свой файл конфигурации
Измените номер порта, на котором вы слушаете;
Добавить правило в iptables
Перезапустить IPtables
Перезагрузите сервер nginx
Доступ к файлам сервера yr nginx через порт 81
источник
Если вы работаете в Windows, то настройки сервера, связанные с портом, находятся в файле nginx.conf в папке <путь установки nginx> / conf .
Измените номер порта и перезапустите экземпляр.
источник
Если у вас возникла эта проблема при использовании Docker, обязательно сопоставьте правильные номера портов. Если вы сопоставляете порт 81:80 при запуске docker (или через docker-compose.yml), ваш nginx должен прослушивать порт 80, а не 81, потому что докер уже выполняет сопоставление.
Я сам довольно долго занимался этой проблемой, так что надеюсь, что это может помочь будущим гуглерам.
источник