2015-11-17 147 views
0

我有nginx設置爲一個ssl反向代理清漆與Apache後端,它完美的作品,但現在我需要nginx作爲一個目錄的Web服務器。如何讓nginx充當代理服務器和Web服務器?

server { 
    listen 10.0.0.20:80; 
    server_name example.com www.example.com; 
    return 301 https://www.example.com$request_uri; 
} 


server { 
    listen 10.0.0.20:443 ssl spdy backlog=16384; 
     server_name example.com www.example.com; 
     server_name_in_redirect off; 
     ssl on; 
     ssl_certificate /home/ubuntu/mydomain-ssl/mydomain.crt; 
     ssl_certificate_key /home/ubuntu/mydomain-ssl/mydomain.key; 
     ssl_dhparam /home/ubuntu/mydomain-ssl/dh2048.pem; 
     ssl_prefer_server_ciphers on; 
     ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_session_cache shared:SSL:2m; 
     ssl_session_timeout 5m; 
     ssl_stapling on; 
     ssl_stapling_verify on; 
     add_header Public-Key-Pins 'pin-sha256="gFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10Q"; pin-sha256="gFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10Q"; max-age=5184000; includeSubDomains'; 
     add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; 
     add_header X-Frame-Options SAMEORIGIN; 
     add_header X-Content-Type-Options "nosniff"; 
     add_header X-XSS-Protection "1; mode=block"; 

     location/{ 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

      proxy_headers_hash_max_size 1024; 
      proxy_headers_hash_bucket_size 128; 
      proxy_pass http://127.0.0.1:80; 
      proxy_set_header X-Forwarded-Proto https; 
      proxy_set_header X-Forwarded-Port 443; 
      proxy_set_header X-Forwarded-Protocol $scheme; 
     } 
} 

如果有人能證明的,我怎麼能服務目錄/目錄/因爲這樣的配置將是有幫助的超級部分一個簡單的例子,我曾嘗試通過添加額外的位置塊配置,但它沒有工作,我在訪問目錄時遇到了404錯誤。

+0

基本上我想在這裏http://ckailash.com/tag添加SENDY配置/ install-sendy-on-subdirectory-nginx /但不能作爲一個完整的服務器,就像我的問題中配置中包含的非代理nginx服務目錄一樣。 – Kiai

回答

0

可能您將流量重定向到HTTPS默認位置,是用作文件更具體的地點:

server { 
    listen 10.0.0.20:80; 
    server_name example.com www.example.com; 

    # absolute path to your directory 
    root /var/www/www.example.com/directory; 

    location/{ 
     return 301 https://www.example.com$request_uri; 
    } 

    location /directory/ { 
     try_files $uri $uri/ =404; 
    } 
} 
+0

Nginx充當SSL終結者,因此部分需要保持不變,我嘗試添加一個/目錄/塊,我得到的是PHP的404錯誤,但我可以很好地訪問.txt文件。當我得到404錯誤時,我在另一個IP上的端口80上設置了一個單獨的配置,並且它工作正常,所以我知道sendy配置是好的,權限似乎是正確的。 – Kiai