nginx 라이믹스 2.X 짧은 주소 사용 설정 관련 문의드립니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.2 |
nginx 가상서버에 2개의 사이트를 운영중입니다.
사이트1.com : 라이믹스 1.9.x
사이트2.net : 라이믹스 1.9.x 에서 라이믹스 2.x 최신 버젼으로 업데이트 완료하고 라이믹스 2.x에서 권장하는 rewrite 규칙 ( https://github.com/rhymix/rhymix/blob/master/common/manual/server_config/rhymix-nginx.conf ) 내용으로 변경 저장완료 했습니다.
nginx service restart 를 입력하면 아래와 같은 에러메지시가 발생하고 사이트1.com 과 사이트2.net 모두 접속이 되질 않습니다.
이전에 문의하고 해결했던 내용 ( https://xetown.com/questions/1641437 ) 과 동일한 에러인것 같아서 기본 설정 파일인 default.conf 내용중에서 location / { try_files ... } 에 해당하는 부분이 있는지 여러번 체크를 해봤는데 이에 해당 되는 부분은 없는데요 혹시 어떤 부분을 시도해봐야 할런지 문의드립니다.
아래 기본 설정 파일에서 도메인은 사이트1.com과 사이트2.net으로 변경처리했구요. 두 사이트 모두 라이믹스 1.9버전에서 사이트2.net 만 우선 라이믹스 2.x대로 업데이트 후 짧은주소 rewrite 규칙을 적용했습니다.
[ default.conf ]
server {
server_name 사이트1.com;
root /usr/share/nginx/html;
location / {
index index.php index.html;
}
client_max_body_size 32m;
##
# add
##
include ipbots-block/block-bots.conf;
include ipbots-block/block-ips.conf;
include xe_rewrite.conf;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
##
# 503 error jtk
##
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/사이트1.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/사이트1.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = 사이트1.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name 사이트1.com;
return 404; # managed by Certbot
}
server {
server_name www.사이트1.com;
return 301 $scheme://사이트1.com$request_uri;
}
server {
server_name secure.사이트1.com;
root /usr/share/nginx/phpmyadmin;
location / {
index index.php index.html;
}
client_max_body_size 32m;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/secure.사이트1.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/secure.사이트1.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = secure.사이트1.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name secure.사이트1.com;
listen 80;
return 404; # managed by Certbot
}
============================================
server {
server_name 사이트2.net;
root /home/youtubeharuoops/www;
location / {
index index.php index.html;
}
client_max_body_size 32m;
##
# add
##
include ipbots-block/block-bots.conf;
include ipbots-block/block-ips.conf;
include rhymix_rewrite.conf;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/사이트2.net/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/사이트2.net/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name www.사이트2.net;
return 301 $scheme://사이트2.net$request_uri;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/사이트2.net/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/사이트2.net/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = 사이트2.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name 사이트2.net;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = www.사이트2.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name www.사이트2.net;
listen 80;
return 404; # managed by Certbot
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
댓글 6
"jouralctl -xe" 를 명령어로 치시면 가장 최근에 nginx에러 난 항목이 어떤것인지 알려줍니다.
해당 파일의 라인 줄수 등등 포함하여 내용을 보여주니 해당 에러를 고치는 방법을 찾으시면 됩니다.
답변감사합니다. 맞는지 모르겠지만 새로 적용한 라이믹스 2.x rewrite 규칙 34라인을 지시하는 것 같은데요.
혹시해서 가이드에 나와 있는 대로 현재 설정 파일 defauf.conf 내용중에서 location / { try_files ... } 해당 되는 부분이 있는지 확인 해봐도 보이질 않아서요. ^^;
# all other short URLs
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
---------------------
default뿐만 아니라 한번에 연결되는 도메인에서도 중복적으로 충돌일어날수있어요...
location / {
index index.php index.html;
}
라고 되어 있는 두 군데를 찾아서 location 명령이 있는 줄과 중괄호를 지우고
index index.php index.html;
이렇게 한 줄만 남기세요.
애당초 index 명령은 location 안에 들어갈 필요가 없는데 왜 저렇게 되어 있는지 모르겠네요.
몇년전에 저렴하게 서버셋팅 의뢰를 막 받던 분이 계셨거든요. 혹해서 .....
트래픽이 좀 나오면 제대로 의뢰를 해야 할 것 같아요.
질문 내용과는 상관 없는 일인데, 내용에보면 listen을 아래에 두셨는데, 물론 nginx가 읽어서 재배열해 사용하지만 위에서부터 실행하는 것들도 있으니까, 이렇게 하면 다른 사람들도 이해하기 쉬워지겠네요.
server {
listen 80;
server_name 사이트1.com www.사이트1.com;
location / {
return 301 https://www.사이트1.com$request_uri;
# 또는 https://사이트1.com$request_uri; 중 택1
expires epoch;
}
}
SSL은 이렇게 되겠죠.
server {
listen 443 ssl http2;
server_name 사이트1.com www.사이트1.com;
# rhymix에서 하나를 다른 곳으로 redirect 시킴
...
}