Estou trabalhando na configuração de um servidor proxy para meu aplicativo. O caso de uso é que eu quero que um conjunto específico de solicitações seja redirecionado para dizer abc.com e o restante da solicitação seja redirecionado para xyz.com . Por exemplo: se um usuário solicitar www.nginx.com , ele deve ir para nginx.com:8000 e o restante das solicitações deve ir para sites.nginx.com
server {
# Listen on port 80 for all IPs associated with your machine
listen 80;
# Catch only requests for www.nginx.com
server_name www.nginx.com;
location / {
# Pass the request to your Apache server running on IP x.x.x.x and port 8000
proxy_pass http://www.nginx.com:8000;
}
}
# Server for S3
server {
# Listen on port 80 for all IPs associated with your machine
listen 80;
# Catch all other server names
server_name _;
# This code gets the host without www. in front and places it inside
# the $host_without_www variable
set $host_without_www $host;
if ($host ~* www\.(.*)) {
set $host_without_www $1;
}
location / {
# This code rewrites the original request, and adds the host without www in front
# E.g. if someone requests
# /directory/file.ext?param=value
# from the coolsite.com site the request is rewritten to
# /coolsite.com/directory/file.ext?param=value
rewrite ^(.*)$ /$host_without_www$1 break;
# The rewritten request is passed to S3
proxy_pass http://sites.nginx.com;
}
}
Mas, atualmente, acredito que haja algum problema com o segundo bloco. Configurei um domínio a ser intermediado por proxy para um site estático no S3 (as regras são escritas de acordo). Mas, em vez de pegar o nome da pasta dentro do intervalo, ele procura o intervalo com o nome da pasta e retorna o seguinte erro.
404 Not Found
Code: NoSuchBucket
Message: The specified bucket does not exist
BucketName: www.gobiggi.co.in
RequestId: 62258F8B3F01AB4C
HostId: f0hxEF/kGTwfwu4uoZ3JxXpdak+vNtLQU9+mfcyg3m8ybIsty9GzbSLnU01jdvVX
Exemplo: eu tenho um intervalo sites.nginx.com(bucket name)/www.abc.com(folder name)
.Agora quero que ele corresponda ao nome da pasta, mas procure o intervalo com o nome www.abc.com
Se eu passá-lo para qualquer outro domínio, diga www.xyz.com
em vez do intervalo, isso funciona.
Preciso de ajuda para configurar isso da maneira certa. Obrigado pelo seu tempo.