
Здравствуйте, у меня возникла странная проблема при просмотре моего собственного веб-сайта:
когда я просматриваю свой VPS-домен (который должен проксировать его на мой homeproxy (nginx), а затем на home webserver1) на Edge/Chrome/Firefox/Chromium, он работает так, как и ожидалось. когда я делаю то же самое на Opera GX, URL-адрес переписывается на: https://internal_web.domain/, что затем приводит к ошибке DNS, поскольку домен, который я использую внутри, не существует за пределами моей сети. На внутреннем веб-сервере я просто размещаю Kanboard. То же самое происходит, если я просто обслуживаю index.html с hello world.
Все 3 сервера: Ubuntu 22.04 версия nginx: nginx/1.18.0 (Ubuntu)
для внутреннего домена у меня есть записи /etc/hosts на всех машинах, и все они разрешаются правильно.
В Opera GX у меня включены только Tracker и Ad Block и выключен VPN. Мой DNS установлен на 8.8.8.8 и вторичный 8.8.4.4.
Opera GX Версия: LVL4 (ядро: 98.0.4759.82) Обновление-Stream: Ранний доступ Операционная система: Windows 11 64-бит Chromium-Version: 112.0.5615.165
Я замаскировал все IP-адреса/домены в конфигурациях.
VPS -> homeproxy(nginx) -> home.webserver1(nginx)
Конфигурация VPS /etc/nginx/sites-enabled/webapp:
server {
listen 80;
server_name vps.myserver.domain;
return 301 https://$host$request_uri;
access_log /var/log/nginx/vps.myserver.domain.access.log;
error_log /var/log/nginx/vps.myserver.domain.error.log;
}
server {
listen 443 ssl http2;
server_name vps.myserver.domain;
ssl_certificate /etc/nginx/ssl/vps.myserver.domain.pem;
ssl_certificate_key /etc/nginx/ssl/vps.myserver.domain.key;
ssl_protocols TLSv1.3;
access_log /var/log/nginx/vps.myserver.domain.access.log;
error_log /var/log/nginx/vps.myserver.domain.error.log;
location / {
proxy_pass http://homewebapp.myserver.domain;
}
}
домашний прокси(nginx) /etc/nginx/sites-enabled/webapp:
server {
listen 80;
server_name homewebapp.myserver.domain;
location / {
proxy_pass http://internal_webapp.domain;
}
access_log /var/log/nginx/homewebapp.myserver.domain.access.log;
error_log /var/log/nginx/homewebapp.myserver.domain.error.log;
}
home.webserver1(nginx) /etc/nginx/sites-enabled/webapp:
server {
listen 80 default_server;
root /var/www/html/webapp/;
index index.html index.htm index.nginx-debian.html;
server_name internal_webapp.domain;
index index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
# Deny access to the directory data
location ~* /data {
deny all;
return 404;
}
# Deny access to .htaccess
location ~ /\.ht {
deny all;
return 404;
}
}
Остальная часть конфигурации NGINX — по умолчанию.
Я также игрался с proxy_set_header в конфигурации, чтобы получить настоящий IP и т. д., но я не выяснил, почему Opera GX ведет себя так. Я немного погуглил, но ничего не нашел по этому поводу, только старую ветку от 2017 года, где Opera GX зависала на каждом сайте, но в этом случае все остальное работает, только мой сайт нет.
На Opera GX я также попробовал это с новым профилем, без включенных дополнений и без включенного AdBlock/Tracker Blocker.
У меня возник вопрос:
Это неправильная конфигурация моего NGINX или просто Opera GX ведет себя странно? Если это мой NGINX, как мне решить эту проблему? Если это Opera GX, то я, наверное, открою Issue на их Bug Tracker где-нибудь?
решение1
После того, как я сменил браузер по умолчанию, и некоторое время он теперь работает... Я не знаю почему. Я также протестировал Safari и некоторые мобильные браузеры, все работали отлично. Я не знаю, что Opera GX делает здесь по-другому. Я писал отчет об ошибке для него, когда он внезапно заработал.
Я также добавил еще одну конфигурацию с default_server
после listen $PORT;
и получил несколько странных ошибок сертификата. Они тоже исчезли. Я не знаю, может это какой-то кэш или что-то еще.