Загрузка Nginx без gunicorn, когда в доменном имени нет www

Я получаю сообщение об ошибке 404 Not Found nginx/1.18.0 (Ubuntu) при поиске своего домена без www в доменном имени, которое я искал. Он находит nginx, поэтому он, очевидно, находит мой сервер, но я не могу найти кого-то, кто не может загрузить gunicorn только без www. Мои серверы имен все указывает на IP-адрес записи, те, что с моим доменным именем слева, — это то место, где я либо оставил его пустым, либо поставил @ в поле. Я просмотрел руководства, которые использовал, чтобы убедиться, что я сделал каждый шаг, есть ли какая-то конфигурация, которую я мог испортить?

Мои журналы ошибок в /var/log/nginx не показывают ничего важного, как и мои журналы в /var/log/webapp, поэтому я не могу понять, почему пушка не загружается без www

Я обнаружил, что это может быть связано с моим конфигурационным файлом в самом nginx, так что вот мой /etc/nginx/sties-enabled/webapp

server {
        server_name www.websitename.com;

        location /static {
                alias /home/sai/webapp/website/static;
        }

        location / {
                proxy_pass http://localhost:8000;
                include /etc/nginx/proxy_params;
                proxy_redirect off;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.websitename.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.websitename.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

}

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


        listen 80;
        server_name www.websitename.com;
    return 404; # managed by Certbot


}

Я обнаружил, что моя ошибка может заключаться в том, что certbot перенаправляет www.имясайта.com только на https, поэтому я попытаюсь выяснить, как добавить к этому имя веб-сайта.com, потому что простое добавление другого, если под, делает мой nginx не в состоянии перезапустить


1
43
2

Ответы:

Итак, если вы посмотрите на здесь, они делают все в отдельных блоках сервера. Мне не нравятся различия между их кодом и моим, и я не совсем понимаю, что означают различия, поэтому любые комментарии или другие ответы были бы полезны, НО это должно исправить это для вас в соответствии с форматом вашего файла. Просто добавьте его в самый низ

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

        listen 80;
        server_name websitename.com;
        return 404;
}

Решено

Сделайте это своей конфигурацией, затем запустите sudo certbot --nginx -d websitename.com -d www.websitename.com, и он должен создать ssl-сертификаты для обоих ваших доменов и работать.

server {
        server_name websitename.com www.websitename.com;

        location /static {
                alias /home/sai/webapp/website/static;
        }

        location / {
                proxy_pass http://localhost:8000;
                include /etc/nginx/proxy_params;
                proxy_redirect off;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.websitename.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.websitename.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

}```