Назад | Перейти на главную страницу

Nginx с SSL на https загружает индексный файл вместо его обработки

Итак, я использую Nginx некоторое время, и как только я начал добавлять сертификат SSL на свой сайт, Nginx загружает индексный файл как расширение .dms вместо того, чтобы обрабатывать его и выводить страницу. Ниже приведена моя конфигурация nginx по умолчанию, хранящаяся в каталоге / etc / nginx / sites-available:

# https://www.nginx.com/resources/wiki/start/
    # https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
    # https://wiki.debian.org/Nginx/DirectoryStructure
    #
    # In most cases, administrators will remove this file from sites-enabled/ and
    # leave it as reference inside of sites-available where it will continue to be
    # updated by the nginx packaging team.
    #
    # This file will automatically load configuration files provided by other
    # applications, such as Drupal or Wordpress. These applications will be made
    # available underneath a path with that package name, such as /drupal8.
    #
    # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
    ##

    # Default server configuration
    #

    #worker_processes auto;

    #http {
    #    ssl_session_cache   shared:SSL:10m;
    #    ssl_session_timeout 10m;

    server {
        if ($host = www.example.com) {
            return 301 https://$host$request_uri;
        } # managed by Certbot


        if ($host = example.com) {
            return 301 https://$host$request_uri;
        } # managed by Certbot


            listen              80 default_server;
            listen              [::]:80 default_server ipv6only=on;
            # SSL configuration
            #
             listen 443 ssl default_server;
             listen [::]:443 ssl default_server;
            #
            # Note: You should disable gzip for SSL traffic.
            # See: https://bugs.debian.org/773332
            #
            # Read up on ssl_ciphers to ensure a secure configuration.
            # See: https://bugs.debian.org/765782
            #
            # Self signed certs generated by the ssl-cert package
                  # Don't use them in a production server!
            #
            # include snippets/snakeoil.conf;

            root /var/www/example/public;

            # Add index.php to the list if you are using PHP
            index index.php index.html index.htm;

            #server_name *.*.*.*;
            #server_name    localhost;
            server_name    example.com www.example.com;

            ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
            ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
            ssl_protocols TLSv1.2 TLSv1.3;
            ssl_ciphers HERE-IS-MY-CYPHER>

            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ /index.php?$query_string;
            }

            # pass PHP scripts to FastCGI server
            #
            location ~ \.php$ {
    #               try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    include snippets/fastcgi-php.conf;
            #
            #       # With php-fpm (or other unix sockets):
            #       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            #       # With php-cgi (or other tcp sockets):
                    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    #               fastcgi_index index.php;
                    include fastcgi_params;
            }

            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            location ~ /\.ht {
                    deny all;
            }
    }

Я знаю, что есть много вопросов, похожих на мою проблему, но я перепробовал их все, если не большинство из них, и все еще не смог решить свою проблему.

То, что я пробовал безуспешно:

  1. Сбросить память браузера и историю
    1. Доступ из режима инкогнито
    2. Доступ из разных браузеров и машин
    3. Удален http2 из порта 80
    4. Перезапуск VPS-сервера
    5. изменил имя сервера с www.example.com на мой IP-адрес и localhost
    6. перезапуск nginx
    7. проверка на синтаксические ошибки

К сожалению, я провела целый день безуспешно. Кроме того, мой сайт какое-то время работал только с http. Когда я начал настройку https, я установил сертификат для автоматического переключения с http на https.

Почему Nginx загружает файл index.php вместо его запуска? Что заставляет Nginx загружать файл, а не запускать его? Как я могу исправить эту проблему?

Версия Nginx: nginx / 1.16.1 (Ubuntu)

Версия PHP: PHP 7.3.11-0ubuntu0.19.10.1 (cli) (построено: 24 октября 2019 г., 11:38:49) (NTS) Авторское право (c) 1997-2018 гг. PHP Group Zend Engine v3.3.11, Авторское право (c ) 1998-2018 Zend Technologies с Zend OPcache v7.3.11-0ubuntu0.19.10.1, Copyright (c) 1999-2018, Zend Technologies