AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / 问题

All perguntas(server)

Martin Hope
jsx97
Asked: 2024-08-06 00:35:17 +0800 CST

FTP: para que é usado, por que seus URLs às vezes começam com 'http://' e suas alternativas modernas

  • 5

Existem três perguntas aqui.

Se bem entendi, a sintaxe do URL do FTP começa com ftp://:

ftp://[user[:password]@]host[:port]/[url-path]

Mas se eu abrir a página de download do GNU Emacs e clicar no link "servidor FTP principal", isso abrirá a http://ftp.gnu.org/gnu/emacsURL, que começa com http://e não ftp://. Por que é tão?

A segunda pergunta: Qual é o propósito de usar FTP? Se eu tenho um site e quero compartilhar alguns arquivos, e não quero ou não tenho tempo de criar uma página HTML para isso, posso simplesmente enviá-los para algum lugar como https://my.blog/uploads, e pronto, não é?

E existem alternativas modernas "convencionais" ao FTP?

ftp
  • 2 respostas
  • 34 Views
Martin Hope
questionto42
Asked: 2024-08-05 21:18:27 +0800 CST

Como posso definir MARS como "True" no gerenciador de conexão se ele volta para "False" imediatamente após fechar as propriedades? Ou por que isso acontece?

  • 7

O gerenciador de conexão grava em uma tabela. Talvez uma vez por semana, o erro seja lançado:

A conexão está ocupada com resultados para outro comando

O SSIS é implantado no Microsoft SQL Server 2016 (SP3-CU1-GDR) (KB5040944) - 13.0.7037.1 (X64).

Sei pelo MARS (Multiple Active Result Sets) - Microsoft Learn que o "MARS = True" ausente leva ao erro. Mas se eu alterar "MARS" para "True" nas propriedades do gerenciador de conexões, a configuração "MARS" muda de volta para "False" assim que eu clico em "OK", de modo que o negrito "True" é alterado para fino "False" novamente quando eu abro as propriedades depois:

insira a descrição da imagem aqui

Também verifiquei se apenas abrir as propriedades do gerenciador de conexões aciona o "False": salvei a alteração sem abrir as propriedades e, em seguida, verifiquei o log do Git, que mostrou que a alteração da configuração MARS para "True" desaparece logo após o clique em "OK". O que ele salvou foram as configurações padrão para novas tentativas (ConnectRetryCount = 1), e me pergunto se permitir um número maior de novas tentativas pode ajudar aqui também. Eu não tentei, no entanto.

Também me pergunto se forçar as configurações alterando-as no código xml em vez do Visual Studio pode ajudar, mas temo que isso possa levar a coisas piores do que um pacote que preciso executar manualmente de vez em quando. Pode valer a pena tentar, mas prefiro obter algumas informações de outras pessoas antes de verificar coisas estranhas.

Por que a configuração "MARS" = "True" volta para "False" imediatamente? Como posso alterá-la para "True"? Devo fazer isso se algo assim acontecer?

ssis
  • 1 respostas
  • 66 Views
Martin Hope
Vincent Stragier
Asked: 2024-08-04 19:10:20 +0800 CST

A passagem SSL do proxy reverso NGINX não funciona com nomes de host longos

  • 5

DR, embora a configuração de passagem SSL ainda possa interessar a alguns curiosos, o problema foi simplesmente um erro de digitação em uma das portas para todos os nomes de host longos que testei.

Estou tentando passar o tráfego https para um servidor back-end por meio do módulo de fluxo Nginx. Funciona para URLs de tamanho razoável, mas não com URLs mais longos, mas não consigo descobrir como resolver o problema.

Posso acessar todos os URLs do meu proxy reverso de back-end a partir do proxy reverso frontal usando /etc/hostspara resolver o endereço e especificando a porta (9443). Portanto, tenho certeza de que o proxy reverso de back-end está configurado corretamente.

Para esses domínios (obviamente mudei os URLs, mas os tamanhos são os mesmos), não há problemas:

wordpress.com 127.0.0.1:9443;
www.wordpress.com 127.0.0.1:9443;
crm.exemplexx.com 127.0.0.1:9443;
# Point to the same endpoint as the long domain
sd.wordpress.com 127.0.0.1:9443;

Erros e registros

Para os mais longos, recebo um erro de conexão recusada ( 2024/08/04 12:30:00 [error] 65636#65636: *34 connect() failed (111: Connection refused) while proxying connection, client: 42.252.189.66, server: 0.0.0.0:443, upstream: "127.0.0.1:9433", bytes from/to client:314/0, bytes from/to upstream:0/0):

# I only need the first one, the other were for testing purposes
enormousubdomainname.dm-ricks.com 127.0.0.1:9433;
enormousubdomainname.wordpress.com 127.0.0.1:9433;
enormousu-bdomainname.wordpress.com 127.0.0.1:9433;
    
# I know these are commented now,
# but they are not mapping correcly
# ~*.dm\-ricks.com  127.0.0.1:9433;
# *.dm-ricks.com  127.0.0.1:9443;

No Firefox, recebo este erro, pois nunca recebe o certificado:

Secure Connection Failed

An error occurred during a connection to enormousubdomainname.dm-ricks.com. PR_END_OF_FILE_ERROR

Error code: PR_END_OF_FILE_ERROR

Para URLs longos, recebo os seguintes logs:

2024/08/04 12:30:00 [info] 65636#65636: *34 client 42.252.189.66:48959 connected to 0.0.0.0:443
2024/08/04 12:30:00 [debug] 65636#65636: *34 posix_memalign: 0000598DEC52CAD0:256 @16
2024/08/04 12:30:00 [debug] 65636#65636: *34 posix_memalign: 0000598DEC52CCA0:256 @16
2024/08/04 12:30:00 [debug] 65636#65636: *34 generic phase: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 generic phase: 1
2024/08/04 12:30:00 [debug] 65636#65636: *34 generic phase: 2
2024/08/04 12:30:00 [debug] 65636#65636: *34 generic phase: 3
2024/08/04 12:30:00 [debug] 65636#65636: *34 generic phase: 4
2024/08/04 12:30:00 [debug] 65636#65636: *34 ssl preread handler
2024/08/04 12:30:00 [debug] 65636#65636: *34 posix_memalign: 0000598DEC52C6D0:256 @16
2024/08/04 12:30:00 [debug] 65636#65636: *34 malloc: 0000598DEC51C8D0:16384
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream recv(): -1
2024/08/04 12:30:00 [debug] 65636#65636: *34 epoll add event: fd:67 op:1 ev:80002001
2024/08/04 12:30:00 [debug] 65636#65636: *34 event timer add: 67: 30000:85946214
2024/08/04 12:30:00 [debug] 65636#65636: epoll del event: fd:8 op:2 ev:00000000
2024/08/04 12:30:00 [debug] 65636#65636: epoll add event: fd:8 op:1 ev:10000001
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream recv(): 314
2024/08/04 12:30:00 [debug] 65636#65636: *34 ssl preread handler
2024/08/04 12:30:00 [debug] 65636#65636: *34 ssl preread: state 0 left 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 ssl preread: supported_versions
2024/08/04 12:30:00 [debug] 65636#65636: *34 SSL preread server name: "enormousubdomainname.dm-ricks.com"
2024/08/04 12:30:00 [debug] 65636#65636: *34 event timer del: 67: 85946214
2024/08/04 12:30:00 [debug] 65636#65636: *34 tcp_nodelay
2024/08/04 12:30:00 [debug] 65636#65636: *34 proxy connection handler
2024/08/04 12:30:00 [debug] 65636#65636: *34 malloc: 0000598DEC5208E0:448
2024/08/04 12:30:00 [debug] 65636#65636: *34 malloc: 0000598DEC61B510:16384
2024/08/04 12:30:00 [debug] 65636#65636: *34 post event 0000598DEC5EB610
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream map started
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream script var: "enormousubdomainname.dm-ricks.com"
2024/08/04 12:30:00 [debug] 65636#65636: *34 posix_memalign: 0000598DEC52C5C0:256 @16
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream map: "enormousubdomainname.dm-ricks.com" "127.0.0.1:9433"
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream script var: "127.0.0.1:9433"
2024/08/04 12:30:00 [debug] 65636#65636: *34 posix_memalign: 0000598DEC520AB0:256 @16
2024/08/04 12:30:00 [debug] 65636#65636: *34 malloc: 0000598DEC520BC0:384
2024/08/04 12:30:00 [debug] 65636#65636: *34 get rr peer, try: 1
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream socket 68
2024/08/04 12:30:00 [debug] 65636#65636: *34 epoll add connection: fd:68 ev:80002005
2024/08/04 12:30:00 [debug] 65636#65636: *34 connect to 127.0.0.1:9433, fd:68 #35
2024/08/04 12:30:00 [debug] 65636#65636: *34 proxy connect: -2
2024/08/04 12:30:00 [debug] 65636#65636: *34 event timer add: 68: 5000:85921235
2024/08/04 12:30:00 [debug] 65636#65636: *34 delete posted event 0000598DEC5EB610
2024/08/04 12:30:00 [debug] 65636#65636: *34 recv: eof:0, avail:-1
2024/08/04 12:30:00 [debug] 65636#65636: *34 recv: fd:67 314 of 16384
2024/08/04 12:30:00 [debug] 65636#65636: *34 event timer del: 68: 85921235
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream proxy connect upstream
2024/08/04 12:30:00 [error] 65636#65636: *34 connect() failed (111: Connection refused) while proxying connection, client: 42.252.189.66, server: 0.0.0.0:443, upstream: "127.0.0.1:9433", bytes from/to client:314/0, bytes from/to upstream:0/0
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream proxy next upstream
2024/08/04 12:30:00 [debug] 65636#65636: *34 free rr peer 1 4
2024/08/04 12:30:00 [debug] 65636#65636: *34 finalize stream proxy: 502
2024/08/04 12:30:00 [debug] 65636#65636: *34 close stream proxy upstream connection: 68
2024/08/04 12:30:00 [debug] 65636#65636: *34 reusable connection: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 finalize stream session: 502
2024/08/04 12:30:00 [debug] 65636#65636: *34 stream log handler
2024/08/04 12:30:00 [debug] 65636#65636: *34 posix_memalign: 0000598DEC520D50:256 @16
2024/08/04 12:30:00 [debug] 65636#65636: *34 close stream connection: 67
2024/08/04 12:30:00 [debug] 65636#65636: *34 reusable connection: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC520BC0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC61B510
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC5208E0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC51C8D0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC52A7F0, unused: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC52C8D0, unused: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC52CAD0, unused: 8
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC52CCA0, unused: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC52C6D0, unused: 6
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC52C5C0, unused: 0
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC520AB0, unused: 2
2024/08/04 12:30:00 [debug] 65636#65636: *34 free: 0000598DEC520D50, unused: 56

Configuração

Estou usando a versão mais recente do nginx com o módulo stream.

$ nginx -v
nginx version: nginx/1.27.0

Com mais ou menos essa configuração.

$ sudo nginx -T
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# configuration file /etc/nginx/nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 1024;
        # multi_accept on;
}

http {
        client_max_body_size 128M;

        ##
        # 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 128;
        server_names_hash_max_size 2048;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

stream {
  log_format log_stream '$remote_addr [$time_local] $protocol [$ssl_preread_server_name] [$ssl_preread_alpn_protocols] '
      '$status $bytes_sent $bytes_received $session_time';

  error_log   /var/log/nginx/stream.error.log debug;
  access_log  /var/log/nginx/stream.access.log log_stream;

  map_hash_bucket_size 128;
  map_hash_max_size 4096;

  map $ssl_preread_server_name $target_backend {
    enormousubdomainname.dm-ricks.com 127.0.0.1:9433;
    enormousubdomainname.wordpress.com 127.0.0.1:9433;
    enormousu-bdomainname.wordpress.com 127.0.0.1:9433;
    wordpress.com 127.0.0.1:9443;
    www.wordpress.com 127.0.0.1:9443;
    crm.exemplexx.com 127.0.0.1:9443;
    sd.wordpress.com 127.0.0.1:9443;
    # ~*.dm\-ricks.com  127.0.0.1:9433;
    # *.dm-ricks.com  127.0.0.1:9443;
  }

  server {
    listen 443;

    proxy_connect_timeout 5s;
    proxy_timeout 5s;
    # resolver 1.1.1.1;

    proxy_pass $target_backend;
    ssl_preread on;
  }
}

# configuration file /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module modules/ngx_stream_module.so;

# configuration file /etc/nginx/mime.types:

# [default configuration]

# configuration file /etc/nginx/sites-enabled/crm.exemplexx.com:
upstream crm  {
        server 127.0.0.1:8080;
}

server {
        listen 80;
        server_name crm.exemplexx.com;

        location / {
                proxy_pass         http://crm;
                #proxy_redirect     off;
                proxy_set_header   Host $host;
                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_set_header   Connection "";
        }
}

# configuration file /etc/nginx/sites-enabled/wordpress.com:
upstream wordpress  {
        server 127.0.0.1:8080;
}

server {
        listen 80;
        server_name     wordpress.com www.wordpress.com;

        location / {
                proxy_pass         http://wordpress;
                #proxy_redirect     off;
                proxy_set_header   Host $host;
                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_set_header   Connection "";
        }
}

# configuration file /etc/nginx/sites-enabled/sd.dm-ricks.com:
upstream sd  {
        server 127.0.0.1:8080;
}

server {
        listen 80;
        server_name    sd.dm-ricks.com;

        location / {
                proxy_pass         http://sd;
                #proxy_redirect     off;
                proxy_set_header   Host $host;
                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_set_header   Connection "";
        }
}

# configuration file /etc/nginx/sites-enabled/enormousubdomainname.dm-ricks.com:
upstream enormousubdomainname  {
        server 127.0.0.1:8080;
}

server {
        listen 80;
        server_name    enormousubdomainname.dm-ricks.com;

        location / {
                proxy_pass         http://enormousubdomainname;
                #proxy_redirect     off;
                proxy_set_header   Host $host;
                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_set_header   Connection "";
        }
}

[...]
``
nginx
  • 1 respostas
  • 97 Views
Martin Hope
david
Asked: 2024-08-04 05:25:19 +0800 CST

Não é possível obter logs de erros do MariaDB em um servidor Debian 12 recém-instalado

  • 5

Instalei o MariaDB usando apt no Debian 12 junto com o Nginx. Estou executando o Wordpress no servidor.

MariaDB trava a cada poucos dias. Preciso examinar os logs de erros para determinar a causa da falha.

Não há diretório mariadb em/var/log

Ao executar o seguinte comando, show global variables like 'log_error';obtenho os resultados abaixo

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_error     |       |
+---------------+-------+
1 row in set (0.001 sec)

Saída degrep 'log_error' /etc/mysql/mariadb.conf.d/50-server.cnf

#log_error = /var/log/mysql/error.log

Alguma coisa precisa ser feita para ativar o log do MaridaDB no Debian 12? Se sim, o que precisa ser feito?

debian
  • 1 respostas
  • 82 Views
Martin Hope
Pete Cooper
Asked: 2024-08-04 03:37:33 +0800 CST

Bloqueando acesso a `*.php` em `.well-known`

  • 9

Gostaria de modificar um locationbloco Nginx existente para fornecer um status HTTP 403 a qualquer arquivo PHP no .well-knowndiretório e seus subdiretórios. Estou usando .well-knownpara fins legítimos, mas um comprometimento recente do servidor mostrou que preciso ser muito mais rigoroso quanto ao que é permitido.

Meu bloco Nginx atual locationé:

    location ^~ /.well-known/ {
        allow all;
        default_type "text/plain";
        root /var/www/example.com/_well-known/;
        try_files $uri/ $uri =404;
    }

Está rootdeliberadamente fora do diretório HTML público (que está em /var/www/example.com/live/se for relevante).

Como posso modificar este bloco ou fornecer um locationbloco adicional para servir HTTP 403 a todas as solicitações de arquivo PHP no .well-knowndiretório?

Obrigado.

nginx
  • 3 respostas
  • 531 Views
Martin Hope
anonymous
Asked: 2024-08-03 04:28:10 +0800 CST

cliente pxe simplesmente não baixa o arquivo

  • 5

Eu configurei um servidor pxe e quero inicializar um host cliente a partir dele. Baseio-me no tutorial https://wiki.debian.org/PXEBootInstall para inicializar pxe um instalador debian.

Como sabemos, um servidor pxe é composto por um servidor dhcp e um servidor tftp. Ambos funcionam. Quando eu inicializo o cliente no Linux normal, ele pode obter um endereço IPv4 e baixar um arquivo via tftp do servidor. Mas quando inicializo no pxe, escolhendo a opção correspondente no menu de inicialização, ele obtém o endereço IP, mas não tenta baixar nenhum arquivo. Eu uso tcpdump e 'journalctl -b0 -u tftpd' no servidor para obter algumas informações. Não mostra nenhuma tentativa do cliente de obter um arquivo por tftp.

O mais interessante é que um outro computador, um antigo Fujitsu Esprimo, é capaz de inicializar por pxe a partir desse servidor. Mas quero inicializar um 'PC desktop HP Elite Tower 800 G9', que se comporta conforme explicado anteriormente. Me ocorreu a ideia de que o arquivo servido poderia ser para bios vintage e não adequado para o uefi mais recente. Mas descartei essa possibilidade, pois não há sequer uma tentativa do cliente de baixar o arquivo. Mas quem sabe, ainda é pensável.

Tentei alterar o bios-config (F10), pois é uma solução plausível. O status atual do meu uefi-config é o seguinte

Advanced > Boot Options > Network (PXE) Boot, enabled
Advanced > Boot Options > Network Boot TFTP Window Size, has value 1
Advanced > Boot Options > UEFI Boot Order, all options except 'NETWORK BOOT: IPV4 Network' are disabled

Security > TPM Embedded Security > TPM Device, Hidden

Portanto, este é um arquivo de configuração para o servidor dhcp dnsmasq.

interface=enp0s31f6
domain=ftpdom.com
dhcp-range=192.168.0.3,192.168.0.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.0.2

dhcp-host=bc:0f:f3:c4:[...],set:allowed,192.168.0.167
dhcp-ignore=#known


enable-tftp
tftp-root=/srv/tftp
pxe-service=x86PC, "PXELINUX (BIOS)", "pxelinux.0"
pxe-service=X86-64_EFI,"PXE (UEFI)","grubx64.efi"

pxe-service=2, "PXELINUX (0002-EFI)", "grubx64.efi"
pxe-service=6, "PXELINUX (0006-EFI)", "grubx64.efi"
pxe-service=7, "PXELINUX (0007-EFI)", "grubx64.efi"
pxe-service=8, "PXELINUX (0008-EFI)", "grubx64.efi"
pxe-service=9, "PXELINUX (0009-EFI)", "grubx64.efi"

A saída no cliente durante a inicialização é

>>>Start PXE over IPv4
   Station IP address is 192.168.0.167
PXE (UEFI)
PXELINUX (0007-EFI)
pxe-boot
  • 1 respostas
  • 132 Views
Martin Hope
Xiaoyong Guo
Asked: 2024-08-02 12:21:03 +0800 CST

O perf/strace/ltrace tem impacto no desempenho do processo tracee?

  • 5

Eu usei strace para observar o processo de serviço em execução algumas vezes e parece que não há muito impacto no processo tracee. Mas hoje quando usei o ltrace para fazer algum rastreamento, ele travou o processo de tracee, felizmente está em um ambiente de desenvolvimento. O dmesg mostra o seguinte erro:

[Fri Aug  2 11:02:43 2024] traps: writer1[4137194] trap int3 ip:4092c1 sp:7f1eda53db58 error:0 in service_prog[400000+1ea000]

Então eu tenho estas perguntas:

  1. O desempenho tem perf/strace/ltraceimpacto no processo de rastreamento?
  2. É seguro usar perf/strace/ltrace em um ambiente de produção?
  3. Por que o ltrace travou o processo tracee? Como interpretar a mensagem dmesg acima? o que é armadilha int3?

Obrigado.

linux
  • 1 respostas
  • 24 Views
Martin Hope
JohnLBevan
Asked: 2024-08-02 00:32:34 +0800 CST

Gateway de aplicativo do Azure: a integridade do back-end retorna HTTP 463, os usuários obtêm um loop circular de 301s

  • 5

Eu tenho um gateway de aplicativo para o qual minhas configurações de back-end são configuradas com sondagens de integridade, permitindo o status 200-499 como íntegro (incluí os 4xxcódigos da série, pois algumas soluções têm raízes de site que retornam 404, embora tenham conteúdo em outros caminhos, e alguns sites retornam um 403 automaticamente para um usuário não autorizado / Não quero que isso afete o status de integridade do back-end / Queria que minha solução fosse o mais genérica possível para que eu pudesse reutilizar as mesmas configurações em uma série de sites para minimizar o esforço ao integrar novos sites ).

No entanto, minha integridade de back-end mostra um dos meus sites retornando HTTP 463códigos de status (portanto, o back-end ainda está íntegro, mas essa resposta é inesperada). Além disso, se eu navegar até o URI do ouvinte associado a esse back-end, ficarei preso em um redirecionamento 301 de/para o mesmo site. Eu tenho redirecionamentos configurados:

  • O backend redireciona de /para /login.aspxpara um usuário não autenticado. Isso usa caminhos relativos, portanto, não é afetado pelo nome do host do AppGW ou pelo protocolo front-end versus back-end.
  • O AppGW possui ouvintes HTTP e HTTPS, a regra HTTP redireciona para o ouvinte HTTPS, enquanto a regra HTTPS está associada ao backend.

No entanto, mesmo se eu remover esses recursos, obtenho o mesmo comportamento.

Outros sites no mesmo AppGW são configurados da mesma maneira, mas não apresentam esse problema.

Eu tenho um script do PowerShell para testar redirecionamentos: Get-HttpUrlRedirects . Se assumirmos que a configuração foi para example.com, a saída ESPERADA da execução Get-HttpUrlRedirects -Url 'http://example.com' -Verboseseria:

VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/login.aspx]
Url                                             StatusCode
---                                             ----------
http://example.com/                                    301
https://example.com/                                   302
https://example/login.aspx                             200

Embora a saída REAL seja:


VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/]
Url                                             StatusCode
---                                             ----------
http://example.com/                                    301
https://example.com/                                   301
VERBOSE: Redirecting to [https://example.com/]
https://example.com/                                   301
VERBOSE: Redirecting to [https://example.com/]
https://example.com/                                   301
VERBOSE: Redirecting to [https://example.com/]

# etc - I hit ctrl + C to terminate when I see this loop occurring
azure
  • 1 respostas
  • 10 Views
Martin Hope
libesesc0
Asked: 2024-08-02 00:15:28 +0800 CST

Pacotes IPv4 provenientes da interface VPN são enviados de volta corretamente, mas não IPv6

  • 5

Eu tenho uma VPN Wireguard configurada para encaminhar pacotes (com iptables) recebidos em um VPS para um servidor, o que funciona muito bem. Porém, a configuração automática da eno2interface (do servidor) pelo Debian cria rotas IP, uma delas é a x:x:x:x::/64 dev eno2, que é a rede local em que o servidor está.

Isso cria um comportamento indesejado, pois quando eu (da rede local) envio pacotes para o servidor através do VPS (isso significa que o servidor receberá os pacotes na interface wg0), o servidor responde na rede local (interface eno2), pois o IPv6 de origem O endereço é o mesmo na Internet e na rede local e, portanto, corresponde à rota x:x:x:x::/64 dev eno2, mesmo que o tráfego IPv6 não local seja enviado wg0. E responde com um endereço IP que o computador de onde enviei os pacotes não conhece porque configurei o NAT com o Wireguard.

Conforme está escrito no título isso não ocorre com IPv4, pois ele usa NAT, então o endereço IP de origem não corresponde 192.168.1.0/24 dev eno2.

Sempre posso me conectar diretamente ao servidor sem passar pelo VPS, ou me conectar com os endereços link-local fe80::/10quando preciso e substituir a rota configurada automaticamente por uma que tenha métrica mais baixa e preferência mais alta (ex. x:x:x:x::/64 dev wg0 metric 200 pref high) para manter a configuração automática feita pelo Debian, exceto esta rota. Mas isso não leva em consideração que o prefixo da rede pode mudar. Também consegui fazê-lo funcionar adicionando uma regra SNAT iptablesdo VPS, mas isso interrompe os serviços que precisam do endereço IP de origem (por exemplo, SPF).

Existe uma solução melhor para o problema? Talvez adicionando uma rota que envie pacotes de volta wg0para wg0e fazendo com que essa rota tenha prioridade sobre a x:x:x:x::/64 dev eno2rota, para que eu ainda possa acessar o servidor na minha rede local com seu endereço IPv6 público?

debian
  • 2 respostas
  • 46 Views
Martin Hope
Jonathan Wood
Asked: 2024-08-01 23:43:55 +0800 CST

São necessárias 24 horas para transferir domínios entre servidores?

  • 5

Alugo um VPS da Ionos. Eles estão desligando o antigo servidor em que minha conta está. Então preciso mover tudo manualmente para um novo servidor da mesma empresa.

Ao remover um dos meus domínios da conta antiga, recebo o seguinte texto.

Importante! Se você quiser transferir o domínio para IONOS posteriormente, aguarde pelo menos 24 horas. Caso contrário, poderão ocorrer erros graves durante a transferência do domínio.

Manter nossos sites fora do ar por 24 horas é um problema real para nós. Alguém sabe por que precisaríamos esperar 24 horas? Isso poderia realmente causar problemas permanentes no novo servidor? Eu realmente preciso esperar 24 horas para estar seguro?

Se fizer alguma diferença, esses domínios estão registrados no GoDaddy (domínios externos). E nosso domínio principal está hospedado em outro servidor, e os sites neste VPS serão subdomínios desse domínio principal.

Também estou transferindo o certificado SSL.

Atualizar:

Se eu estivesse mudando para um servidor de propriedade de uma nova empresa, poderia simplesmente apontar meus servidores de nomes de domínio para o novo servidor e eles mudariam sempre que mudassem. Os usuários acessariam o servidor antigo até então. Porém, neste caso, ficarei na mesma empresa e os servidores de nomes não serão alterados. Presumo que este seja o motivo do aviso.

windows
  • 2 respostas
  • 115 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve