상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 웹서버구축에서 명령어로 설정할 수 있는 부분은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
웹서버를 구축할 때 단순히 설정 파일을 수작업으로 편집하는 것 외에도 수많은 명령어를 통해 설치부터 서비스 제어, 모듈 활성화, 보안·성능 튜닝에 이르기까지 다양한 구성을 자동화하거나 즉시 적용할 수 있습니다. 아래에 주요 영역별로 어떤 명령어와 옵션을 쓰는지를 자세히 설명합니다. 1. 패키지 설치 및 서비스 관리 리눅스 배포판에 따라 `apt`, `yum`, `dnf` 같은 패키지 관리 명령어를 통해 Apache(httpd)나 Nginx를 설치합니다. 예를 들어 Ubuntu 계열에서는 `sudo apt update` `sudo apt install apache2` (또는 `nginx`) 를 사용하고, CentOS/RHEL 계열에서는 `sudo yum install httpd` 또는 `sudo dnf install nginx` 와 같이 설치합니다. 설치가 끝나면 systemd 기반 시스템에서는 `sudo systemctl start httpd` (또는 `nginx`) `sudo systemctl enable httpd` `sudo systemctl status httpd` 등으로 서비스를 실행·자동시작 등록·상태 확인을 합니다. SysV init 환경에서는 `service httpd start`, `chkconfig httpd on` 등을 사용합니다. 2. 가상호스트 및 포트 설정 Apache에서는 `a2ensite`, `a2dissite` 명령을 통해 가상호스트(enabled site)를 간단히 활성·비활성화합니다. 예를 들어 `sudo a2ensite example.com.conf` `sudo systemctl reload apache2` Nginx의 경우엔 별도의 enable/disable 스크립트가 없지만, `/etc/nginx/sites-available`와 `/etc/nginx/sites-enabled`를 직접 심볼릭 링크로 관리하며 `sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/` `sudo nginx -t` `sudo systemctl reload nginx` 명령으로 즉시 반영합니다. 포트 변경은 설정 파일 수정 후 `-t` 옵션을 통해 문법검사, `reload`로 재시작 없이 적용합니다. 3. 모듈·기능 활성화 및 비활성화 Apache 모듈은 `a2enmod`, `a2dismod`로, Nginx의 경우 컴파일 시점 모듈을 제외하면 동적 로드가 제한적이므로 대부분 설정 파일(`load_module`)에 직접 경로를 지정합니다. 예를 들어 `sudo a2enmod <a href='https://sangseek.com/sangseeks/rewrite/ko'>rewrite</a>` `sudo systemctl restart apache2` 처럼 URL 재작성 기능을 켤 수 있고, 필요 없는 모듈은 비활성화하여 메모리 점유를 줄일 수 있습니다. 4. SSL/TLS 인증서 발급 및 적용 자체 서명(Self-Signed) 인증서는 OpenSSL 명령어 한 줄로 생성합니다. `openssl req -newkey rsa:2048 -nodes -keyout example.key -x509 -days 365 -out example.crt` Let's Encrypt 등 공인 인증서는 Certbot을 사용하여 `sudo certbot --apache -d example.com` `sudo certbot --nginx -d example.com` 과 같이 설치·자동 갱신 스크립트를 등록하게 됩니다. 발급 후 웹서버 설정 파일에서 `SSLCertificateFile`, `SSLCertificateKeyFile` 등을 명령어 없이 바로 참조하게 설정한 뒤에도 `reload` 명령만으로 증명서를 즉시 적용할 수 있습니다. 5. 보안·권한 설정 웹루트 디렉토리의 소유자와 권한은 `chown`, `chmod`로 관리합니다. `sudo chown -R www-data:www-data /var/www/html` `sudo chmod -R 755 /var/www/html` SELinux가 활성화된 시스템에서는 `semanage fcontext`, `restorecon` 명령으로 웹서버가 읽고 쓸 수 있는 컨텍스트를 지정합니다. `sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"` `sudo restorecon -Rv /var/www/html` 방화벽도 `ufw`나 `firewall-cmd`로 HTTP(80)/HTTPS(443) 포트를 허용합니다. `sudo ufw allow 'Apache Full'` 또는 `sudo firewall-cmd --permanent --add-service=http` `sudo firewall-cmd --reload` 6. 성능 튜닝 동시 접속 처리량을 늘리기 위해 Apache에서는 `mpm_prefork`, `mpm_event` 등의 MPM 설정을, Nginx에서는 `worker_processes`, `worker_connections` 설정을 조정합니다. 이 값을 즉시 변경하려면 설정 파일 편집 후 `reload` 하면 되고, 커널 매개변수를 건드릴 때는 `sysctl`을 사용합니다. `sudo sysctl -w net.core.somaxconn=65535` `sudo sysctl -w fs.file-max=200000` 파일 디스크립터 한도는 `ulimit -n 100000` 명령으로 세션 단위로 높일 수 있으며, 영구 적용은 `/etc/security/limits.conf`에 추가합니다. 7. 로깅·모니터링 실시간 로그 확인은 `tail -f /var/log/apache2/access.log` 또는 `journalctl -u nginx -f` 같은 명령을 사용합니다. 로그 파일이 커지면 `logrotate` 설정에 맞춰 `logrotate /etc/logrotate.d/nginx`를 수동 실행해 로그를 순환시킬 수 있습니다. 추가로 `netstat` 혹은 `ss` 명령으로 현재 열려 있는 소켓과 연결 상태를, `top`·`htop`으로 CPU·메모리 사용 현황을 점검해 장애 원인을 분석합니다. 8. PHP-FPM, 프록시, 캐싱, <a href='https://sangseek.com/sangseeks/로드밸런싱/ko'>로드밸런싱</a> PHP-FPM 프로세스 구성을 바꾸려면 `/etc/php/…/fpm/pool.d/*.conf` 파일을 수정하거나 `php-fpm` 서비스 재시작 전 `php-fpm -t`로 문법 검사 후 `systemctl reload php-fpm`을 합니다. Nginx를 리버스 프록시나 로드밸런서로 활용할 때는 `upstream` 블록을 CLI 편집 후 `nginx -t && systemctl reload nginx`로 반영하며, 캐싱 설정(`proxy_cache_path`)도 같은 방식으로 빠르게 활성화·비활성화합니다. 이처럼 웹서버 구축 과정에서 필요한 거의 모든 설정을 터미널 명령어 한 줄로 설치, 활성화, 변경, 재시작, 검증, 보안·성능 튜닝에 이르기까지 처리할 수 있습니다. 숙련된 자동화 스크립트(Ansible, Chef, Puppet)나 셸 스크립트를 작성하면 이 명령들을 모듈화하여 더욱 일관성 있고 반복 가능한 구성 관리가 가능합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기