J'ai une configuration nginx qui fonctionne comme prévu pour l'un de mes domaines, mais il y a un comportement de redirection bizarre lorsque je fais pointer un autre domaine vers mon serveur.
Question :
Je veux rediriger toutes les requêtes faites sur un site non-www vers la version www de mon site.
Eg :
http://example.com devrait être redirigé vers https://www.example.com
http://m.example.com devrait être redirigé vers https://www.example.com
Ma configuration fonctionne comme prévu pour example.com mais lorsque je donne un nom de domaine, disons cdn.test.com, à l'adresse IP de mon serveur avec un fichier de configuration distinct. Il redirige vers www.cdn.test.com
Voici ma configuration pour example.com :
server{
#redirect non-www to www
listen 80;
listen 443 ssl;
server_name example.com;
ssl_certificate .../cert.pem;
ssl_certificate_key .../key.pem;
return 301 https://www.$host$request_uri;
}
server{
#redirect request to the mobile site to the main site
listen 80;
server_name m.example.com;
return 301 https://www.example.com$request_uri;
}
server{
#redirect unsecure www to secure wwww
listen 80;
server_name www.example.com;
return 301 https://$host$request_uri;
}
upstream backend {
server 127.0.0.1:23042;
server 127.0.0.1:23043 backup;
}
server {
listen 443 ssl;
server_name www.example.com;
access_log off;
error_log off;
ssl_certificate .../cert.pem;
ssl_certificate_key .../key.pem;
location / {
proxy_pass http://backend;
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 CF-IPCountry $http_cf_ipcountry;
}
location /static {
alias .../app/static;
expires 30d;
}
}
et voici la configuration pour cdn.test.com :
server {
listen 80;
server_name cdn.test.com;
root /home/.../files;
}
0 votes
Utilice
nginx -T
(majusculesT
) pour visualiser l'ensemble de la configuration et s'assurer que l'optionserver_name cdn.test.com;
Le bloc serveur est inclus. Il se comporte comme si ce dernierserver
est ignoré.