2015-11-17 148 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