Как перенести этот Apache VHost в nginx - PullRequest
0 голосов
/ 04 февраля 2019

Я относительно новичок и хотел протестировать сервис на nginx, но я изо всех сил пытаюсь преобразовать эту конфигурацию Apache в nginx.

<VirtualHost *:80>

  ServerName api.my-site.de

  DocumentRoot /var/www/api.my-site.de/current/public

  <Directory "/var/www/api.my-site.de/current/public">
      AllowOverride FileInfo AuthConfig Limit Options=All,MultiViews Indexes
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
      Order deny,allow
      Require all granted
  </Directory>

</VirtualHost>


<VirtualHost *:443>

  ServerName api.my-site.de

  DocumentRoot /var/www/api.my-site.de/current/public

  <Directory "/var/www/api.my-site.de/current/public">
      AllowOverride FileInfo AuthConfig Limit Options=All,MultiViews Indexes
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
      Order deny,allow
  </Directory>

 SSLEngine on

 SSLCertificateFile           /etc/ssl/private/wildcard.my-site.de.crt
 SSLCertificateKeyFile     /etc/ssl/private/wildcard.my-site.de.key
 SSLCertificateChainFile  /etc/ssl/private/chain.crt

</VirtualHost>

Может кто-нибудь помочь здесь, пожалуйста?Поскольку у nginx нет ничего похожего на .htaccess, я не уверен, что делать со всеми тегами.

Текущий проект:

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    listen 443 ssl;
    listen [::]:443 ipv6only=on ssl;

    server_name api.my-site.de

    location / {
        root   /var/www/api.my-site.de/current/public;
    }

    ssl_certificate      /etc/ssl/private/wildcard.my-site.de.crt;
    ssl_certificate_key  /etc/ssl/private/wildcard.my-site.de.key;
}

1 Ответ

0 голосов
/ 05 февраля 2019

Прежде всего мне нравится разделять серверные блоки на разные конфигурации (даже если сейчас они одинаковые, вы полюбите себя, когда вернетесь через 2 года и вам нужно будет это прочитать).

sslсертификат:

Nginx читает только 1 файл crt, под ssl_certificate, здесь вам нужно объединить вашу цепочку и ваш crt в одном файле, больше информации:

https://futurestud.io/tutorials/how-to-configure-nginx-ssl-certifcate-chain

Итак, я бы сделал следующее:

Скопируйте сертификат в другое место, для безопасности и ничего не трогая.

sudo cp /etc/ssl/private/wildcard.my-site.de.crt /etc/ssl/private/api-mysite-de.pem

И объедините вашу цепочку в "сертификат".

sudo cat /etc/ssl/private/chain.crt > /etc/ssl/private/api-mysite-de.pem

Затем вы можете установить ssl_certificate на этот файл для работы nginx.

server {

    listen 443 ssl;
    listen [::]:443 ipv6only=on ssl;

    server_name api.my-site.de
    ssl_on;
    ssl_certificate      /etc/ssl/private/api-mysite-de.pem;
    ssl_certificate_key  /etc/ssl/private/wildcard.my-site.de.key;

    access_log /var/log/nginx/ssl-api.my-site.de.access.log; 
    error_log /var/log/nginx/ssl-api.my-site.de.cat.error.log;


    location / {
        root   /var/www/api.my-site.de/current/public;
    }


}

А вот и конфигурация http-порта 80.

Оставьте свой файл .htaccess в/var/www/api.my-site.de/current/public и он должен работать правильно.

server {
    listen 80;
    listen [::]:80 ipv6only=on;

    server_name api.my-site.de
    access_log /var/log/nginx/api.my-site.de.access.log; 
    error_log /var/log/nginx/api.my-site.de.cat.error.log;

    #logs are love, logs are life

    location / {
        root   /var/www/api.my-site.de/current/public;
    }

}

Если вам нужны какие-либо дополнительные конфигурации или он показывает какие-либо ошибки в журналах (я их там настроил) рекомендую, и я постараюсь справиться с этим.

Надеюсь, я помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...