80 이외의 포트에서 수신하도록 Apache 구성


102

나는 centOS 서버를 사용합니다. 포트 8079에서 수신하도록 아파치를 구성하고 싶습니다 httpd.conf. LISTEN 8079 지시문을 .
iptables에서 포트 8079를 열고 iptables를 다시 시작했습니다. 심지어 iptables 서비스를 중단했습니다.

"netstat -nal | grep 8079" shows "tcp  0 0 :::8079 :::* LISTEN"

내가 액세스를 시도하는 경우 http://localhost:8079또는 http://myserver.com:8079그 기계에서, 그 페이지에 액세스 할 수 있습니다. 그러나 다른 컴퓨터에서는 80이 아닌 다른 포트에서 사이트에 액세스 할 수 없습니다. 포트 80에서는 작동합니다. 포트 8079에서는 그렇지 않습니다.

그 밖에 무엇을 구성해야합니까?

답변:


138

에서 /etc/apache2/ports.conf와 같은 포트를 변경

Listen 8079

그런 다음 /etc/apache2/sites-enabled/000-default.conf로 이동하십시오.

그리고 첫 번째 줄을 다음과 같이 변경하십시오.

<VirtualHost *: 8079>

이제 다시 시작

sudo service apache2 restart

Apache는 이제 포트 8079에서 수신 대기하고 / var / www / html로 리디렉션합니다.


1
아니요, "이 웹 페이지를 사용할 수 없습니다"라는 성가신 메시지 만 표시됩니다. 명확히하기 위해 포트 80은 완벽하게 작동합니다. VirtualHost와 Listen을 모두 변경해도 문제가 해결되지 않습니다. (AWS 우분투). BTW 다른 포트를 수신하는 데 필요한 이유는 nginx도 80을 수신하도록 구성했기 때문입니다.
Tomer

1
빠른 질문 : AWS 우분투에 있다고 말하면서 보안 그룹에서 인바운드 포트를 열었습니까?
Shankar ARUL-jupyterdata.com 2015 년

1
NameVirtualHost *:80위의 줄이 있으면 Listen 80변경하십시오 ......
Haider Ali

75

텍스트 편집기에서 httpd.conf 파일을 엽니 다. 이 줄을 찾으십시오.

Listen 80

그리고 그것을 바꾸십시오

Listen 8079

변경 후 저장하고 아파치를 다시 시작하십시오.


3
예,하지만 첫 번째 줄에서 이미 "httpd.conf에 LISTEN 8079 지시문을 추가했습니다"라고 언급했습니다. : ((
vivek.m

오, 죄송합니다. 나는 그것을 보지 못했다. httpd.conf 파일을 어디에 게시 할 수 있습니까? 타사 소프트웨어 Wamp, Xampp, Appserv를 사용하고 있습니까?
ismailperim

여기서 httpd.conf를 얻을 수 있습니다. fileuploading.net/860467 WAMP, Xampp, Appserv와 같은 것은 없습니다. 내가 한 것은 소스에서 apache, tomcat 및 jk 커넥터를 컴파일하고 함께 작동하도록 최선을 다하는 것입니다.
vivek.m

나는 문제를 찾지 못했습니다. (모든 것이 정상적으로 보입니다. 로컬 서버에 Listen 8076 라인을 추가하려고 시도했지만 정상적으로 작동했습니다. 가능하면 아파치를 다시 설정해 볼 수 있습니까?
ismailperim

2
이런 종류의 질문에 답할 때 모두가 잊는 것처럼 보이는 한 가지는 파일 위치를 언급하는 것입니다. 파일은 /etc/apache2/ports.conf에 있습니다
Mateus Viccari

23

방화벽 문제였습니다. 거의 모든 포트에 대한 액세스를 차단하는 하드웨어 방화벽이있었습니다. (소프트웨어 방화벽 끄기 / SELinux bla bla는 효과가 없음)

그런 다음 열린 포트를 스캔하고 열린 포트를 사용했습니다.

동일한 문제가 발생하면 다음 명령을 실행하십시오.

sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000

시스템에서 열려있는 모든 포트를 검색합니다. 열려있는 모든 포트는 외부에서 액세스 할 수 있습니다.

참조 . : http://www.go2linux.org/which_service_or_program_is_listening_on_port


netstat -anp | 그렙 아파치 (이에서 수신 대기 포트 및 PID 그것의 running.Ubuntu 경우 볼 수)
ImranNaqvi

내 클라우드 서비스 제공 업체에는 포트를 차단하는 방화벽이 맨 위에있었습니다. 대상 서버 이외의 위치에있는 방화벽을 확인하십시오.
야마다

16

80 이외의 Apache Listen 포트가 필요한 경우 우분투 아래에 다음 파일을 추가해야합니다.

"/etc/apache2/ports.conf"

청취 포트 목록

Listen 80
Listen 81
Listen 82

가상 호스트 conf 파일로 이동하여 다음을 정의해야합니다.

<VirtualHost *:80>
  #...v host 1
</VirtualHost>


<VirtualHost *:81>
  #...host 2
</VirtualHost>


<VirtualHost *:82>
  #...host 3
</VirtualHost>

7

이것은 Centos에서 나를 위해 일하고 있습니다.

첫째 : /etc/httpd/conf/httpd.conf 파일

더하다

Listen 8079 

Listen 80

이것은 서버가 포트 8079를 수신 할 때까지

둘째 : 예를 들어 가상 호스트로 이동합니다. /etc/httpd/conf.d/vhost.conf

이 코드를 아래에 추가하십시오.

<VirtualHost *:8079>
   DocumentRoot /var/www/html/api_folder
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin root@example.com
   ErrorLog logs/www.example.com-error_log
   CustomLog logs/www.example.com-access_log common
</VirtualHost>

이것은 www.example.com:8079리디렉션으로 이동할 때

/ var / www / html / api_folder

하지만 먼저 서비스를 다시 시작해야합니다.

sudo service httpd restart


2

Windows에서 Apache를 사용하는 경우 :

  1. Win+ R+ services.msc+로 Apache 서비스의 이름을 확인합니다 Enter(ApacheX.Y가 아닌 경우 Apache와 함께 사용중인 소프트웨어의 이름이 있어야합니다. 예 : "wampapache64").
  2. 관리자 권한으로 명령 프롬프트를 시작합니다 ( Win+ R+ cmd+를 사용하는 Enter것만으로는 충분하지 않습니다).
  3. Apache의 디렉토리로 변경하십시오 cd c:\wamp\bin\apache\apache2.4.9\bin. 예 : ;
  4. 다음을 사용하여 구성 파일이 정상인지 확인 httpd.exe -n "YourServiceName" -t하십시오 . (서비스 이름을 1 단계에서 찾은 이름으로 바꾸십시오.)
  5. 서비스가 중지되었는지 확인하십시오. httpd.exe -k stop -n "YourServiceName"
  6. 시작 : httpd.exe -k start -n "YourServiceName"
  7. 제대로 시작되면 문제는 더 이상 존재하지 않지만 다음과 같은 경우 :

    AH00072 : make_sock : 주소 IP : PORT_NUMBER에 바인딩 할 수 없습니다.

    AH00451 : 사용 가능한 청취 소켓 없음, 종료

    포트 번호가 사용하려는 번호가 아닌 경우 Apache 구성 파일을 열고 (예 : C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf코드 편집기 나 워드 패드로 열지 만 메모장 은 열지 않음 -새 줄을 제대로 읽지 못함) 시작하는 줄의 번호를 바꿉니다. Listen원하는 포트 번호 와 함께 저장하고 6 단계를 반복합니다. 사용하려는 포트 인 경우 계속합니다.

  8. Win+ R+ resmon+로 해당 포트를 사용하는 프로세스의 PID를 확인하고 네트워크 탭을 Enter클릭 한 다음 포트 하위 탭을 클릭합니다 .
  9. 다음으로 죽여라 : taskkill /pid NUMBER /f( /f강제로);
  10. resmon포트가 현재 사용 가능한지 다시 확인하고 6 단계를 반복합니다.

이렇게하면 Apache의 서비스가 제대로 시작되었는지 확인할 수 있습니다. sarul에서 언급 한 가상 호스트 구성 파일 (예 :) 의 구성 C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf은 파일 경로를 설정하고 포트를 변경하는 경우에도 필요합니다. 다시 변경하는 경우 서비스를 다시 시작해야합니다 httpd.exe -k restart -n "YourServiceName"..


1

FC22 서버의 경우

cd / etc / httpd / conf httpd.conf 편집 [입력]

변경 : Listen 80 to : Listen whatevernumber

파일 저장

systemctl restart httpd.service [enter] 필요한 경우 라우터 / 방화벽에서 아무 번호 나 엽니 다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.