2016-10-09 43 views
0

我已經設置mkdocs並在端口8000上運行,Nginx設置爲具有下面配置的反向代理。但是,當通過反向代理瀏覽器訪問網站時,長時間停留「連接...」大約2分鐘並且頁面加載。另外,如果我用瀏覽器停止「X」,則整個頁面立即顯示。任何人都可以幫忙嗎?mkdocs nginx反向代理緩慢

server { 
    listen 80; 

    server_name docs.example.com; 

    location/{ 
    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_pass http://127.0.0.1:8000/; 
    proxy_redirect off; 
    proxy_buffering off; 
    } 
} 

而nginx.conf是

# For more information on configuration, see: 
# * Official English Documentation: http://nginx.org/en/docs/ 
# * Official Russian Documentation: http://nginx.org/ru/docs/ 

user nginx; 
worker_processes auto; 
error_log /var/log/nginx/error.log; 
pid /run/nginx.pid; 

# Load dynamic modules. See /usr/share/nginx/README.dynamic. 
include /usr/share/nginx/modules/*.conf; 

events { 
    worker_connections 1024; 
} 

http { 
    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 /var/log/nginx/access.log main; 

    sendfile   on; 
    tcp_nopush   on; 
    tcp_nodelay   on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 

    include    /etc/nginx/mime.types; 
    default_type  application/octet-stream; 

    # Load modular configuration files from the /etc/nginx/conf.d directory. 
    # See http://nginx.org/en/docs/ngx_core_module.html#include 
    # for more information. 
    include /etc/nginx/conf.d/*.conf; 

    server { 
     listen  80 default_server; 
     listen  [::]:80 default_server; 
     server_name _; 
     root   /usr/share/nginx/html; 

     # Load configuration files for the default server block. 
     include /etc/nginx/default.d/*.conf; 

     location/{ 
     } 

     error_page 404 /404.html; 
      location = /40x.html { 
     } 

     error_page 500 502 503 504 /50x.html; 
      location = /50x.html { 
     } 
    } 

# Settings for a TLS enabled server. 
# 
# server { 
#  listen  443 ssl http2 default_server; 
#  listen  [::]:443 ssl http2 default_server; 
#  server_name _; 
#  root   /usr/share/nginx/html; 
# 
#  ssl_certificate "/etc/pki/nginx/server.crt"; 
#  ssl_certificate_key "/etc/pki/nginx/private/server.key"; 
#  ssl_session_cache shared:SSL:1m; 
#  ssl_session_timeout 10m; 
#  ssl_ciphers HIGH:!aNULL:!MD5; 
#  ssl_prefer_server_ciphers on; 
# 
#  # Load configuration files for the default server block. 
#  include /etc/nginx/default.d/*.conf; 
# 
#  location/{ 
#  } 
# 
#  error_page 404 /404.html; 
#   location = /40x.html { 
#  } 
# 
#  error_page 500 502 503 504 /50x.html; 
#   location = /50x.html { 
#  } 
# } 

} 
+0

任何人都可以幫忙 – Irfad

+0

你確定它正在lo0上聽嗎?你嘗試過'nc 127.0.0.1 8000'嗎? – tjvr

+0

@tjvr是的,我可以捲曲並得到結果 – Irfad

回答

0

MkDocs是靜態現場發電機

預期的用例是您將網頁「構建」爲static web pages,然後將已經構建的HTML頁面上傳到您的服務器,服務器將其提供給您的用戶。一個主要的優點是,由於服務器不需要爲每個請求重新處理Markdown和模板,所以它是很多的父親。

儘管MkDocs確實包含serve命令,但包含的「服務器」僅用於開發。換句話說,在編寫文檔時,您可以使用開發服務器在本地機器上查看您的更改。但是,服務器並不打算向其他機器或外部世界提供任何服務。從來沒有預料到服務器會有多個同時連接。

因此,您應該將它指向一個靜態文件的目錄,並將您的MkDocs文檔的版本複製到該目錄,而不是讓nginx在端口上列出。

+0

謝謝。這說得通。我能夠使用站點的文檔進行構建。我不知道服務僅用於開發目的:) – Irfad