>

Nginx를 프록시로 사용하는 서버에서 Flask-RESTplus의 Swagger UI를 가져 오려고합니다.

Swagger는/api에서 제공되었으며 http : // localhost : 5000/api 를 사용하여 로컬에서 작동합니다. Nginx를 프록시로 설정하여 http : // ServerIP/api 로 이동하여 Swagger UI.

Nginx에 대해 많은 구성을 시도했지만 현재는

location /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://localhost:5000;
        proxy_redirect off;
        proxy_intercept_errors on;
        proxy_http_version 1.1;
}

그러나 http : // ServerIP/api 로 이동하면 빈 페이지가 나타납니다. Chrome 개발자 도구에 오류가 있습니다 :

Uncaught ReferenceError: SwaggerUIBundle is not defined
at window.onload (api:75)

이것은

<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script type="text/javascript">
    window.onload = function() {
        const ui = window.ui = new SwaggerUIBundle({

그러나 나는 (200 OK, 자바 스크립트 파일을 제공한다) http : //ServerIP/swaggerui/swagger-ui-bundle.js http : //ServerIP/swaggerui/swagger-ui-standalone-preset.js .

어떤 아이디어가 문제가 될 수 있습니까?

  • 답변 # 1

    유사한 질문 : 서버 응답이 절반으로 줄어 듭니다

    Nginx는 큰 업스트림 파일을 보낼 때 임시 폴더에 쓸 수있는 권한이 있어야합니다. 보통 당신은 /var/log/nginx/error.log 에서 볼 수 있습니다  ~처럼

    2018/06/28 16:34:48 [crit] ... open() "<tmp folder>/x/y/00000000z" failed (13:
    Permission denied) while reading upstream, <request info...>
    
    

    이 문제를 nginx : nginx로 수정하려면 (사용자를 수동으로 변경하지 않은 한) 예 : sudo chown -R nginx:nginx /var/lib/nginx . 권한이 7xx 이상이 아닌 경우 권한을 변경해야 할 수도 있지만 문제가되지는 않습니다.

    대신 당신은 proxy_buffering off; 를 설정할 수 있습니다  연결이 평소보다 더 길 것으로 예상되는 경우 (권장 또는 크기) 권장하지 않습니다.

  • 이전 c# - TreeNodeCollectionAdd (TreeNode)를 어떻게 재정의합니까?
  • 다음 excel - if 및 for 루프가 while 루프 VBA에 포함 된 경우