У меня есть настройка nginx на моем vps со статическим IP-адресом и двумя доменами (beryju.org и nope.berlin).
Я хочу служить:
Кроме того, я хочу, чтобы beryju.org и blog.beryju.org поддерживали SSL.
Но с моей текущей конфигурацией я получаю:
Я пробовал, и он также не работает, когда я удаляю имя хоста из оператора прослушивания, т.е.
listen i.beryju.org:80;
к
listen 80;
в каждом файле.
server {
listen blog.beryju.org:80;
listen blog.beryju.org:443 ssl;
ssl_certificate /home/beryju/SSL/nginx/beryju.org.cert;
ssl_certificate_key /home/beryju/SSL/nginx/beryju.org.key;
access_log /var/log/nginx/beryjuorg-blog.access.log;
error_log /var/log/nginx/beryjuorg-blog.error.log;
root /home/beryju/Apps/Ghost/;
index index.html index.htm index.php;
location / {
proxy_pass http://127.0.0.1:2368;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen i.beryju.org:80;
server_name i.beryju.org;
access_log /var/log/nginx/beryjuorg-image-hoster.access.log;
error_log /var/log/nginx/beryjuorg-image-hoster.error.log;
root /usr/share/nginx/i.beryju.org;
index index.html index.htm index.php;
location /gyazo.php {
try_files $uri $uri/ =404;
fastcgi_index index.php;
include fcgi.conf;
fastcgi_pass unix:/var/run/php-fcgi-beryjuorg-image-hoster-php-fcgi-0.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
try_files $uri $uri/ =404;
}
}
server {
listen beryju.org:80;
listen beryju.org:443 ssl;
ssl_certificate /home/beryju/SSL/nginx/beryju.org.cert;
ssl_certificate_key /home/beryju/SSL/nginx/beryju.org.key;
server_name beryju.org;
access_log /var/log/nginx/beryjuorg.access.log;
error_log /var/log/nginx/beryjuorg.error.log;
root /usr/share/nginx/beryju.org/;
index index.html index.htm index.php;
location ~ [^/]\.php(/|$) {
fastcgi_index index.php;
include fcgi.conf;
fastcgi_pass unix:/var/run/php-fcgi-beryjuorg-php-fcgi-0.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
server {
listen nope.berlin:80;
server_name nope.berlin;
access_log /var/log/nginx/nopeberlin.access.log;
error_log /var/log/nginx/nopeberlin.error.log;
root /usr/share/nginx/nope.berlin/;
index index.html index.htm index.php;
location / {
autoindex on;
}
}
Файл beryjuorg-blog.conf
отсутствует server_name
директива, которая означает, что серверный блок будет "уловкой" для запросов без HTTP / 1.1 заголовка Host (доменное имя) или неопределенного заголовка Host. Видеть Как nginx обрабатывает запросы и серверные блоки для получения дополнительной информации об этом.
Поскольку у вас статический IP-адрес, вы можете сделать конфигурацию более явной, добавив IP-адрес в listen
директива, например
listen 192.168.0.3:80;
В listen
директива не предназначена для приема имени хоста; видеть документация.
Указание обоих server_name
и необязательный IP-адрес для listen
должен решить проблему.