Не удается перенаправить HTTP на HTTPS с помощью nginx - PullRequest
0 голосов
/ 10 октября 2019

В моем веб-приложении Laravel реализован google api, и геолокация работает только в том случае, если пользователь вручную вводит https перед именем домена (то есть у меня есть SSL-сертификат letsencrypt). Я пробовал различные решения, размещенные здесь, в различных онлайн-учебниках и на форуме сообщества цифровых океанов, и ничто не дает мне такой простой результат, какой я хочу.

Как это работает в данный момент:

  • Если пользователь заходит на www.domain.com или domain.com, геолокация не работает.
  • Если пользователь вводит https вручную до www.domain.com или domain.com, геолокация работает без проблем. .

Мой текущий код конфигурации nginx:

server {
    listen 80;
    root /var/www/domain/public;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name www.domain.com domain.com;

    location / {
            try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

    location ~ /\.ht {
            deny all;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

То, что я пробовал:

Что я получаю в результате:

  • «Страница перенаправляется неправильно» (firefox) / «Слишком много перенаправлений» (chrome)
  • По умолчанию "Welcome to nginx!"страница приветствия (происходит, когда я делю свой текущий файл conf на 2 серверных блока)

Любая помощь будет принята с благодарностью, заранее благодарим вас!

РЕШЕНИЕ

Итак, благодаря этому Nitx git-серверу возвращает ошибку 500 несколько связанных постов, я смог изменить свой конфигурационный файл, чтобы он выглядел так:

server {
    listen 80;
    server_name www.domain.com domain.com;
    rewrite ^ https://$server_name$request_uri? permanent;
} 

server {
    listen 443 ssl;
    server_name www.domain.com domain.com;
    root /var/www/domain/public;
    index index.php index.html index.htm index.nginx-debian.html;

    location / {
            try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

    location ~ /\.ht {
            deny all;
    }

    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Надеюсьэто помогает другим, работающим над проектами Laravel, работающими на серверах LEMP:)

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