Nginx反向代理错误指向站点问题求助:新增子域名被异常重定向
Nginx反向代理错误指向站点问题求助:新增子域名被异常重定向
大家好,我在Debian 12上用Nginx做带SSL终止的反向代理,托管了好几个站点,最近遇到了个奇怪的问题——没法新增更多主机了,具体情况如下:
- 我已经启用了默认站点,但只要浏览器访问
sub-xx.domain.com这类新增的子域名,就会被系统重定向到a.domain.com;而从a.domain.com到w.domain.com这些已有的站点都能正常工作。 - 如果用HTTP访问,浏览器会提示站点不安全,然后被重定向到
d.domain.com;如果明确用HTTPS访问,则会被重定向到a.domain.com。 - 查看
xx.domain.com的日志,完全找不到请求记录;只有当用HTTPS访问时,a.domain.com的日志里会出现一条记录:192.168.9.1 - - [19/Jan/2024:16:55:04 -0300] "GET /img/logo.gif HTTP/2.0" 200 3418 "https://xx.domain.com/css/login>
下面是相关的配置文件,麻烦大家帮忙排查下问题:
新增站点xx.conf的配置
upstream xx { server 192.168.8.86; keepalive 32; } server { listen 80; server_name xx.domain.com; include /etc/nginx/snippets/location-letsencrypt.conf; # return 301 https://$server_name$request_uri; #} #server { # listen 443 ssl http2; # server_name test.xx.domain.com; # include /etc/nginx/snippets/location-letsencrypt.conf; # include /etc/nginx/snippets/ssl-params.conf; # ssl_certificate /etc/letsencrypt/live/xx.domain.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/xx.domain.com/privkey.pem; location / { include /etc/nginx/snippets/proxy.conf; proxy_pass http://test_xx/; } access_log /var/log/nginx/xx.domain.com/access.log; error_log /var/log/nginx/xx.domain.com/error.log; }
另一个新增站点yy.conf的配置
upstream yy { server 192.168.8.81; keepalive 32; } server { listen 80; server_name yy.domain.com; include /etc/nginx/snippets/location-letsencrypt.conf; # return 301 https://$server_name$request_uri; #} #server { # listen 443 ssl http2; # server_name yy.domain.com; # include /etc/nginx/snippets/location-letsencrypt.conf; # include /etc/nginx/snippets/ssl-params.conf; # ssl_certificate /etc/letsencrypt/live/yy.domain.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/yy.domain.com/privkey.pem; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; proxy_pass_request_headers on; proxy_pass http://yy/; } access_log /var/log/nginx/yy.domain.com/access.log; error_log /var/log/nginx/yy.domain.com/error.log; }
主配置nginx.conf
user www-data; worker_processes auto; worker_rlimit_nofile 100000; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 10240; multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # To avoid error 413 client_max_body_size 192M; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log debug; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access-special.log combined; ## # Gzip Settings ## gzip on; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
引用的snippet文件location-letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; default_type "text/plain"; root /var/www/le_root; } location = /.well-known/acme-challenge/ { return 404; }
折腾了好一阵没找到原因,有没有大佬能帮忙看看问题出在哪?
备注:内容来源于stack exchange,提问作者drodriguez
相关产品推荐
相关产品推荐

