728x90
반응형

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

 

신규 사이트 vhost 설정을 추가하고 graceful을 시켰는데,
갑자기 이런 메세지가...

 

 
[root@lease10feb ~]# apachectl graceful
httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

 

등에 식은 땀이 흐른다.
서비스에는 이상이 없는 것을 확인한다.
일단 퇴근 이후 까지 기다린다.

 

확인해 보니 /var/run/httpd.pid 가 없다.
생각해 보니 monit으로 서버 부하를 모니터링하여 일정 부하이상 올라가면 httpd를 재시작하도록 설정해 놓았는데,
오늘 그 작업이 있었고, 그로 인해 문제가 생긴 것 같다.
monit의 상태는 아래와 같았다.

 

 
[root@lease10feb ~]# monit summary
The Monit daemon 5.5 uptime: 244d 11h 18m

System 'lease10feb.dreamtec.co.kr'  Running
Process 'httpd'                     Execution failed

 

'restart'를 해야하나? 'killall httpd'를 해야하나? 고민한다.

 

[수정2023.05.30] apachectl 옵션을 보니 reload가 있다. 없다. 
/etc/init.d/httpd 에 reload 옵션이 있다.

 

 
[root@lease10feb ~]# apachectl
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
                       [-C "directive"] [-c "directive"]
                       [-k start|restart|graceful|graceful-stop|stop]
                       [-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
  -S                 : a synonym for -t -D DUMP_VHOSTS
  -t -D DUMP_MODULES : show all loaded modules
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
 
[root@lease10feb ~]# /etc/init.d/httpd
Usage: httpd {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}

reload를 해 본다.
httpd.pid가 생겼다.
graceful을 해 본다. 잘 된다.

 

#아파치 #apache #httpd #monit #apachectl

 

 

728x90
SMALL
Posted by gromet
728x90
반응형

아파치 프록시로 다른 서버의 사이트 서비스 하기

 

 

2대의 서버를 운영중이다.
A 서버에서 서비스 중인 사이트를
B 서버에서 함께 서비스를 하고 싶다.

첫번째는 일반적으로 하는 것처럼 데이터를 복사하고 똑같이 세팅하여 서비스를 하면 된다.
두번째는 프로그램 버전 차이 문제나, 데이터를 복사할 수 없을 때 등 프록시를 이용하여 세팅할 수 있다.

사용된 아파치 버전은 아래와 같다.

[root@test httpd]# httpd -v
Server version: Apache/2.2.22 (Unix)
Server built: Feb 23 20xx 12:27:57

 

VirtualHost를 아래와 같이 작성한다.
핵심은 Proxy~ 부분이다.

 

<VirtualHost *:80>
ServerName mydomain1.com
ServerAlias *.mydomain1.com mydomain1.com
ServerAdmin webmaster@mydomain1.com
ErrorLog logs/mydomain1.com-error_log
SetEnvIf Request_URI "favicon.ico" do_not_log
CustomLog logs/mydomain1.com-access_log Combined env=!do_not_log
ProxyPreserveHost On
ProxyPass / http://mydomain2.com:80/
ProxyPassReverse / http://mydomain2.com:80/
ProxyRemote * http://mydomain2.com:80/
</VirtualHost>

 

아파치를 재시작 해 주면 된다.

 

#아파치 #프록시 #apache #proxy

 

728x90
SMALL
Posted by gromet
728x90
반응형

 

 

 

Image by Pete Linforth from Pixabay

 

악성 봇(로봇 SemrushBot) 차단 

 

특정 사이트를 운영하고 있는 서버의 부하가 높고 트래픽이 높아서 확인해 보니 일반적이 사용자의 접속이 아니라 검색로봇의 접속이 많기 때문이었다.
구글과 같이 검색 사이트에 많이 노출이 되면 좋다고 생각하고 그냥 두려고 하였으나 트래픽과 서버 부하를 유발하고 있어 해당 검색봇들에 대해 확인해 보니 악성봇이라는 것을 확인할 수 있었다.
그리고 차단하는 방법에 대한 것도 확인할 수 있었다.

bad_bot.conf 작성

<Location *>
SetEnvIfNoCase User-Agent "^MJ12bot" bad_bot
SetEnvIfNoCase User-Agent "^MJ12bot/v1.4.5" bad_bot
~
# Aggressive Chinese Search Engine
SetEnvIfNoCase User-Agent "Baiduspider" bad_bot

Deny from env=bad_bot
</Location>

httpd.conf 수정
* 가상호스트 설정 앞에 로드 되도록 설정하였다.
Include bad_bot.conf
Include vhost.d/*.conf

[참고]
https://xetown.com/tips/1130812
https://hoing.io/archives/398
https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker
https://serverfault.com/questions/499327/how-can-i-block-a-user-agent-from-all-sites-on-my-server

 

#badbots #crawler #검색로봇차단 #block-bot #block-bad-bots #httpd #apache

 

 

 

 

 

728x90
SMALL
Posted by gromet
이전버튼 1 이전버튼

블로그 이미지
나는 운이 좋은 사람이다 나는 나날이 점점 더 좋아진다 내가 하는 선택과 행동은 반드시 성공으로 이어진다 내게는 인내력과 지속력이 있다 네게는 좋은것들만 모여든다
gromet

공지사항

Yesterday
Today
Total
반응형

달력

 « |  » 2024.11
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

160x600