Подтвердить что ты не робот

Запустите node.js webbapp на 80 портах на окнах

Мне нужно сделать мой локальный node.js webapp listen 80. Теперь, если запустить мое приложение на порту 80, я получаю этот erro

events.js:72
        throw er; // Unhandled 'error' event
          ^
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1020:19)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
    at Object.<anonymous> (\scripts\server.js:23:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10) 

И если запустить приложение на 4321-порту, эта ошибка не будет воспроизведена, поэтому это зависит от порта.

Что делать, чтобы запускать мое приложение на порту 80 в Windows 7

4b9b3361

Ответ 1

На компьютере с Windows вы, вероятно, 80-й порт, занятый сервером IIS. Попробуйте остановить iis первым и после запуска node.js webapp с портом 80.

Ответ 2

IIS на 80 портах определенно проблема. Вместо этого вы можете попробовать IIS node. http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx Вероятно, вам не нужен порт 80 в локальной разработке вообще, но если вы приступите к производству на Windows-машине, то IIS Node будет хорошим выбором для балансировки нагрузки.

Ответ 3

Вздох - я только узнал, что SKYPE.EXE скрывается в моих портах 80 и 443. Используйте netstat -anb, чтобы увидеть, что может блокировать node.exe от приема сокетов на этих портах...

Ответ 4

Как @jimme моя проблема была в том, что я установил клиент skype для тестирования другого проекта на одной машине разработки.

В моем случае я мог }).listen(80);, но не }).listen(80, "0.0.0.0");. Мой сервер был недоступен ни от чего, кроме локального. Когда я исследовал, выполнив netstat -abn, я увидел, что что-то прослушивает этот порт, но информации о процессе не было. Мне повезло в информации о том, что "Windows пытается разместить такие негибкие сервисы, не привязывая свой механизм отправки к порту 80, пока что-то активно не спросит об этом". Вот почему вы не обязательно будете видеть проблему изначально, но можете столкнуться с этой проблемой после какого-то обновления или изменения конфигурации.), "https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4-what-is-that, в котором указана статья https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/.

Когда я увидел эту важную информацию и ответ @jimme, я вспомнил, что я также установил skype. Я просто сделал скайп не при старте, и я был хорош.

Ответ 5

У меня была эта проблема также на моем ПК с Windows 10.

Я следовал команде по этой ссылке (net stop http): fooobar.com/info/26672/... в командной строке, которую я открыл как администратор и получил такой вывод:

C:\Users\<user>\Documents\project>net stop http 

The following services are dependent on the HTTP Service service. Stopping the HTTP Service service will also stop these services.

 World Wide Web Publishing Service    
 SSDP Discovery    
 Print Spooler    
 Function Discovery Provider Host

Do you want to continue this operation? (Y/N) [N]: y 

The World Wide Web Publishing Service service is stopping. 
The World Wide Web Publishing Service service was stopped successfully.

The SSDP Discovery service is stopping. 
The SSDP Discovery service was stopped successfully.

The Print Spooler service is stopping. 
The Print Spooler service was stopped successfully.

The Function Discovery Provider Host service is stopping. 
The Function Discovery Provider Host service was stopped successfully.

The HTTP Service service was stopped successfully.

C:\Users\<user>\Documents\project>

Затем я снова сделал npm start в другой командной строке, в которой я не являюсь администратором, и получил этот диалог об ошибках

enter image description here

Я нажал "ОК", чтобы закрыть его, и просто набрал localhost в своем браузере, и мое приложение запустилось!

Что странно, так это то, что я вернулся на вкладку TaskManager → Services и перезапустил все четыре службы, которые были остановлены. На снимке экрана ниже вы можете увидеть одну из служб, которая была остановлена раньше (см. столбец "Описание"), но теперь перезапущена:

enter image description here

Но теперь, когда я запускаю npm start, мое нодовое приложение все еще запускается.

Поэтому мне кажется немного странным, что до того, как я остановил эти службы, я не смог запустить свое приложение. После их остановки я теперь могу запустить свое приложение. Но я все еще могу запустить свое приложение даже после перезапуска этих служб.