Extra Form
PHP PHP 7.2
CMS Rhymix 2.x

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 모두 접속이 되질 않습니다.

11111.jpg

 

이전에 문의하고 해결했던 내용 ( 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;

 

 

 

  • profile
    질문자분께서 올리신 이미지에 보시면 어떻게 해결해야할지 알려주고 있습니다.

    "jouralctl -xe" 를 명령어로 치시면 가장 최근에 nginx에러 난 항목이 어떤것인지 알려줍니다.

    해당 파일의 라인 줄수 등등 포함하여 내용을 보여주니 해당 에러를 고치는 방법을 찾으시면 됩니다.
  • profile ?

    답변감사합니다. 맞는지 모르겠지만 새로 적용한 라이믹스 2.x rewrite 규칙 34라인을 지시하는 것 같은데요.

    혹시해서 가이드에 나와 있는 대로 현재 설정 파일 defauf.conf 내용중에서 location / { try_files ... }  해당 되는 부분이 있는지 확인 해봐도 보이질 않아서요. ^^;

     

    # all other short URLs
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }


    ---------------------

    2022-02-18 19,25,22.JPEG

    Atachment
    첨부
  • ? profile
    각 사이트별로 나눠두신 곳에 location 이 있는데요? 질문글에 올려주신 항목을 살펴보세요.

    default뿐만 아니라 한번에 연결되는 도메인에서도 중복적으로 충돌일어날수있어요...
  • ? profile

    location / {
        index index.php index.html;
    }

    라고 되어 있는 두 군데를 찾아서 location 명령이 있는 줄과 중괄호를 지우고

    index index.php index.html;

    이렇게 한 줄만 남기세요.

    애당초 index 명령은 location 안에 들어갈 필요가 없는데 왜 저렇게 되어 있는지 모르겠네요.

  • profile ?
    감사합니다. 해결이 되었습니다. ^^
    몇년전에 저렴하게 서버셋팅 의뢰를 막 받던 분이 계셨거든요. 혹해서 .....
    트래픽이 좀 나오면 제대로 의뢰를 해야 할 것 같아요.
  • profile

    질문 내용과는 상관 없는 일인데, 내용에보면 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 시킴
         ...

    }