2016-09-30 19 views
2

給了這個好鏡頭,但它似乎在網上找到的任何文檔都與某個用例有關,所以對於沒有以前的nginx.conf體驗的人來說,這是一個真正的痛苦!禁用HTTPS在Dokku上的nginx.conf中重定向

我在Dokku上有一個Ruby on Rails服務器,下面顯示了nginx.conf模板。目前所做的是重定向http://自動使用https://的請求。雖然我需要它在http://上工作,但沒有重定向。

server { 
    listen  [::]:80; 
    listen  80; 
    server_name getbeambox.com yourhotspot.net www.getbeambox.com; 
    access_log /var/log/nginx/beambox-access.log; 
    error_log /var/log/nginx/beambox-error.log; 

    return 301 https://$host:443$request_uri; 

} 
server { 
    listen  [::]:443 ssl spdy; 
    listen  443 ssl spdy; 
    server_name getbeambox.com yourhotspot.net www.getbeambox.com; 
    server_name getbeambox.com yourhotspot.net www.getbeambox.com; 
    access_log /var/log/nginx/beambox-access.log; 
    error_log /var/log/nginx/beambox-error.log; 

    ssl_certificate  /home/dokku/beambox/tls/server.crt; 
    ssl_certificate_key /home/dokku/beambox/tls/server.key; 

    keepalive_timeout 70; 
    add_header   Alternate-Protocol 443:npn-spdy/2; 

    location /{ 

    gzip on; 
    gzip_min_length 1100; 
    gzip_buffers 4 32k; 
    gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xm$ 
    gzip_vary on; 
    gzip_comp_level 6; 

    proxy_pass http://beambox-5000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header X-Forwarded-Port $server_port; 
    proxy_set_header X-Request-Start $msec; 
    } 
    include /home/dokku/beambox/nginx.conf.d/*.conf; 
} 

upstream beambox-5000 { 

    server 172.17.0.3:5000; 
} 

任何人都可以指向正確的方向嗎?不會問我是不是真的卡住:)

+0

您可以從一個'服務器'塊提供'http'和'https'。有關詳細信息,請參見[本文檔](http://nginx.org/en/docs/http/configuring_https_servers.html)。 –

回答

0

This是你正在尋找的文件,但它不是很清楚。

您需要做的第一件事是在應用程序的回購站的根目錄中創建並提交一個文件,名爲nginx.config.sigil。然後將this file的內容複製到其中並進行必要的調整。

我是nginx的新手,但是我能夠找到正在做重定向的行。這裏是我的工作文件的樣子:

{{ range $port_map := .PROXY_PORT_MAP | split " " }} 
{{ $port_map_list := $port_map | split ":" }} 
{{ $scheme := index $port_map_list 0 }} 
{{ $listen_port := index $port_map_list 1 }} 
{{ $upstream_port := index $port_map_list 2 }} 

{{ if eq $scheme "http" }} 
server { 
    listen  [::]:{{ $listen_port }}; 
    listen  {{ $listen_port }}; 
    {{ if $.NOSSL_SERVER_NAME }}server_name {{ $.NOSSL_SERVER_NAME }}; {{ end }} 
    access_log /var/log/nginx/{{ $.APP }}-access.log; 
    error_log /var/log/nginx/{{ $.APP }}-error.log; 
    location /{ 

    gzip on; 
    gzip_min_length 1100; 
    gzip_buffers 4 32k; 
    gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml; 
    gzip_vary on; 
    gzip_comp_level 6; 

    proxy_pass http://{{ $.APP }}-{{ $upstream_port }}; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header X-Forwarded-Port $server_port; 
    proxy_set_header X-Request-Start $msec; 
    } 
    include {{ $.DOKKU_ROOT }}/{{ $.APP }}/nginx.conf.d/*.conf; 
} 
{{ else if eq $scheme "https"}} 
server { 
    listen  [::]:{{ $listen_port }} ssl {{ if eq $.SPDY_SUPPORTED "true" }}spdy{{ else if eq $.HTTP2_SUPPORTED "true" }}http2{{ end }}; 
    listen  {{ $listen_port }} ssl {{ if eq $.SPDY_SUPPORTED "true" }}spdy{{ else if eq $.HTTP2_SUPPORTED "true" }}http2{{ end }}; 
    {{ if $.SSL_SERVER_NAME }}server_name {{ $.SSL_SERVER_NAME }}; {{ end }} 
    {{ if $.NOSSL_SERVER_NAME }}server_name {{ $.NOSSL_SERVER_NAME }}; {{ end }} 
    access_log /var/log/nginx/{{ $.APP }}-access.log; 
    error_log /var/log/nginx/{{ $.APP }}-error.log; 

    ssl_certificate  {{ $.APP_SSL_PATH }}/server.crt; 
    ssl_certificate_key {{ $.APP_SSL_PATH }}/server.key; 
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 

    keepalive_timeout 70; 
    {{ if eq $.SPDY_SUPPORTED "true" }}add_header   Alternate-Protocol {{ $.NGINX_SSL_PORT }}:npn-spdy/2;{{ end }} 

    location /{ 

    gzip on; 
    gzip_min_length 1100; 
    gzip_buffers 4 32k; 
    gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml; 
    gzip_vary on; 
    gzip_comp_level 6; 

    proxy_pass http://{{ $.APP }}-{{ $upstream_port }}; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header X-Forwarded-Port $server_port; 
    proxy_set_header X-Request-Start $msec; 
    } 
    include {{ $.DOKKU_ROOT }}/{{ $.APP }}/nginx.conf.d/*.conf; 
} 
{{ end }}{{ end }} 

{{ if $.DOKKU_APP_LISTENERS }} 
{{ range $upstream_port := $.PROXY_UPSTREAM_PORTS | split " " }} 
upstream {{ $.APP }}-{{ $upstream_port }} { 
{{ range $listeners := $.DOKKU_APP_LISTENERS | split " " }} 
{{ $listener_list := $listeners | split ":" }} 
{{ $listener_ip := index $listener_list 0 }} 
{{ $listener_port := index $listener_list 1 }} 
    server {{ $listener_ip }}:{{ $upstream_port }};{{ end }} 
} 
{{ end }}{{ end }}