2016-08-28 2 views
0

Noobie 질문은 여기에 있습니다.Nginx 404 일부 하위 폴더 오류

나는 우분투 방울에서 Parse-Server를 설정했으며 현재 여기에서 문제를 다루고 있습니다.

/etc/nginx/sites-enabled/default

나는 그래서 따라와 링크가 잘

  • https://example.com/parse/
  • 작업

    # HTTP - redirect all requests to HTTPS 
    server { 
        listen 80; 
        listen [::]:80 default_server ipv6only=on; 
        server_name example.com; 
        return 301 https://$host$request_uri; 
    } 
    
    # HTTPS - serve HTML from /usr/share/nginx/html, proxy requests to /parse/ 
    # through to Parse Server 
    server { 
         listen 443; 
         server_name example.com; 
    
         root /usr/share/nginx/html; 
         index index.html index.htm; 
    
         ssl on; 
         # Use certificate and key provided by Let's Encrypt: 
         ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
         ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
         ssl_session_timeout 5m; 
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
         ssl_prefer_server_ciphers on; 
         ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 
    
         # Pass requests for /parse/ to Parse Server instance at localhost:1337 
         location /parse/ { 
           proxy_set_header X-Real-IP $remote_addr; 
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
           proxy_set_header X-NginX-Proxy true; 
           proxy_pass http://localhost:1337/; 
           proxy_ssl_session_reuse off; 
           proxy_set_header Host $http_host; 
           proxy_redirect off; 
         } 
         location /test/ { 
           proxy_set_header X-Real-IP $remote_addr; 
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
           proxy_set_header X-NginX-Proxy true; 
           proxy_pass http://localhost:1337/test/; 
           proxy_ssl_session_reuse off; 
           proxy_set_header Host $http_host; 
           proxy_redirect off; 
         } 
         location /dashboard/ { 
           proxy_set_header X-Real-IP $remote_addr; 
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
           proxy_set_header X-NginX-Proxy true; 
           proxy_pass http://localhost:4040/dashboard/; 
           proxy_ssl_session_reuse off; 
           proxy_set_header Host $http_host; 
           proxy_redirect off; 
         } 
    
         location/{ 
           try_files $uri $uri/ =404; 
         } 
    } 
    

    다음 한 내 SSL은이 파일에서 letsencrypt

    에서입니다

  • https://example.com/dashboard/
  • https://example.com/test/

하지만 기본 파일의 원인을 작업하는 잘 작동하는 코드를 가지고있다. 나는

404 오류가 예를

에 대한이 분석의 모든 디렉토리에 대해 그렇게 할 수 없습니다.

default 파일에 모든 페이지를 구성하지 않고도 사용할 수있는 방법이 있습니까?

업데이트

그래서 내가 더 404 오류를 얻을 내 기본 파일

location /parse/ { 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-NginX-Proxy true; 
      proxy_pass http://localhost:1337/parse/; 
      proxy_ssl_session_reuse off; 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
    } 

안에이 둘 때. 이는 여기에 게시 한 첫 번째 파일과 다른 proxy_pass http://localhost:1337/parse/입니다.

하지만 어떻게하면 모든 요청에 ​​대해 /parse/ 또는 /something/ 등으로 할 수 있습니까? 여기에 모든 폴더와 내가 서버 내부에서 만들 수있는 가능한 링크를 바로 아래에 놓을 수는 없습니다. 이 도메인에서 나는 또한 /assets/ 등을 가질 웹 사이트를 설정할 것이고 그것은 각각 하나씩 필요할 것입니다.

생성 될 수있는 가능한 모든 링크를 포함하는 코드가 없습니까?

답변

1

정규식 그룹을 사용하여 location 항목의 일부를 캡처 할 수 있습니다 (예 :

location /(.*) { 
     ... 
     proxy_pass http://localhost:1337/$1; 
     ... 
} 
+0

따라서이 예제에서는 "/ parse /"의 모든 하위 폴더 등을 가져옵니다. –

+0

정확하지는 않지만'/ parse /'는 많은 사람들 중에서 하나의 예라고 생각했습니다. 위의 명령은'/'다음에 오는 모든 것을 포착하고 (예를 들어'parse /')'$ 1'이 지정된 곳에 놓습니다. 결과는'proxy_pass http : // localhost : 1337/parse /; '입니다. 다른 접미사, 예.'/ parse /'('/dashboard/'에 다른 포트가 있다는 것을 알아 차렸을 때'/ something /','proxy_pass http : // localhost : 1337/something;' '), 당신은'location/parse /(.*)'와 같은 것을 수행한다. 내가 제공 한 것보다 더 복잡하고 더 엄격한 정규 표현식을 만들 수있다. 위의 내용은 모든 것을 캡처합니다. – creativeChips

+0

사실, 모든 것을 허용하고 싶습니다. 나는 당신의 모범을 시험해보고 결과를 말할 것입니다! –