Nginx에서 ‘begin’ (T_STRING) 예기치 않은 문제 해결하기 nginx unexpected ‘begin’ (T_STRING)
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 110; #gzip on; server { listen 9001; server_name localhost; root C:\work\cj_003\dcms-ui; charset euc-kr; #access_log logs/host.access.log main;# location / {# root C:\work\cj_003\dcms-ui;# index index.html index.htm index.php;# } location / { root C:\work\cj_003\dcms-ui; fastcgi_pass localhost:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME C:\work\cj_003\dcms-ui$fastcgi_script_name; include fastcgi_params; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; } location ~ \.css { add_header Content-Type text/css; } location ~ \.js { add_header Content-Type application/x-javascript; } location ~* \.(?:manifest|appcache|html?|xml|json)$ { expires -1; } location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { expires 1M; access_log off; add_header Cache-Control "public"; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html;# location = /50x.html {# root html;# } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #}}
웹 서버 구성은 웹 애플리케이션의 성능과 보안에 중요한 역할을 합니다. Nginx는 그중에서도 뛰어난 성능과 유연성으로 많이 사용되는 웹 서버 중 하나입니다. 하지만, Nginx 설정 파일을 작성하거나 수정할 때 실수로 인해 예상치 못한 오류 메시지가 발생할 수 있습니다. 이번 포스트에서는 “nginx unexpected ‘begin’ (T_STRING)”과 같은 오류 메시지를 해결하는 방법을 소개하고자 합니다.
Nginx 설정 파일의 기본 구조
Nginx 설정 파일은 nginx.conf
파일을 통해 웹 서버의 동작을 제어합니다. 이 파일은 다음과 같은 기본 구조를 가지고 있습니다:
- 글로벌 설정: 워커 프로세스의 수, 로그 파일의 위치, PID 파일의 위치 등 서버 전반에 영향을 미치는 설정이 포함됩니다.
- 이벤트 블록: 연결 처리에 관련된 설정을 포함합니다. 예를 들어, 동시에 열 수 있는 연결 수를 정의할 수 있습니다.
- HTTP 블록: 웹 서버로서의 Nginx의 동작을 정의합니다. 여기에는 MIME 타입, 로깅, 파일 전송 방식, 서버 블록 등이 포함됩니다.
- 서버 블록: 도메인별 설정을 포함합니다. 리스닝 포트, 서버 이름, 위치 블록 등을 설정할 수 있습니다.
- 위치 블록: 특정 요청 URI에 대한 설정을 정의합니다. 정적 파일 처리, 프록시 전달, 캐싱 정책 등을 세부적으로 설정할 수 있습니다.
오류 메시지 해석
“nginx unexpected ‘begin’ (T_STRING)” 오류는 Nginx 설정 파일 내에 예상치 못한 문자열이 존재할 때 발생합니다. 이는 대부분 오타, 구문 오류, 또는 지원하지 않는 지시어 때문에 발생합니다.
문제 해결 방법
- 구문 검사: Nginx 설정 파일의 구문을 철저히 검사합니다. 누락된 세미콜론(
;
), 잘못된 따옴표 사용, 불필요한 문자 등이 없는지 확인하세요. - 경로 검증: 윈도우 시스템에서 경로를 지정할 때는 백슬래시(
\
) 대신 슬래시(/
)를 사용하는 것이 좋습니다. 예를 들어,root C:\work\cj_003\dcms-ui;
를root C:/work/cj_003/dcms-ui;
로 수정하세요. - 문자 인코딩:
charset euc-kr;
와 같은 문자 인코딩 설정은 해당 서버와 클라이언트 모두에서 지원되는 인코딩인지 확인하세요. - 지시어 확인: Nginx의 공식 문서를 참고하여 사용하고 있는 모든 지시어가 올바르게 사용되었는지 확인하세요. 특히, 커스텀 설정이나 세부적인 지시어의 경우 문서를 참고하는 것이 중요합니다.
- Nginx 재시작: 설정 파일을 수정한 후에는 Nginx를 재시작하여 변경 사항을 적용하세요. 재시작 시 오류 메시지를 통해 문제를 좀 더 명확히 파악할 수 있습니다.


결론
Nginx 설정 파일의 오류는 대부분 작은 실수나 누락에서 비롯됩니다. 위에서 제안한 방법을 통해 문제를 해결하고, 웹 서버의 성능과 보안을 개선할 수 있습니다. Nginx 설정에 익숙해질수록 더 복잡하고 세밀한 서버 구성이 가능해질 것입니다.
키워드
Nginx, 웹 서버 구성, 오류 해결, 구문 검사, 경로 검증, 문자 인코딩, 지시어 확인, Nginx 재시작, 설정 파일 수정, 서버 성능 개선