2015-11-17 3 views
0

У меня есть nginx, настроенный как прокси-сервер ssl для лакирования с помощью Apache-бэкэнд, и он отлично работает, но теперь мне нужно, чтобы nginx выступал в качестве веб-сервера для одного каталога.Как заставить nginx действовать как прокси-сервер и веб-сервер?

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

В основном я пытаюсь добавить Sendy конфигурации здесь http://ckailash.com/tag/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-терминатор, так что часть должна оставаться неизменной, я попробовал добавить/directory/block, и все, что у меня было, было 404 ошибки для PHP, я мог бы получить доступ к файлам .txt, несмотря на это. Когда я получил 404 ошибки, я установил отдельную конфигурацию на порт 80 с другого IP-адреса, и он работал нормально, поэтому я знаю, что конфигурация sendy хороша, и разрешения кажутся правильными. – Kiai

Смежные вопросы