Nginx 仅正确处理域名

Nginx 仅正确处理域名

在我的服务器上,所有对 mydomain.com 和 www.mydomain.com 的请求都会正确地转到我的服务器的 IP 地址,并且内容会准确显示。但是,如果您直接转到服务器的 IP,则会显示“欢迎使用 nginx!”默认页面。我希望直接向服务器的 IP 发出请求以显示正确的内容。我的服务器配置位于下方。我还应该提到,仅在“server_name”行上的“mydomain.com”后添加公共 IP 或“0.0.0.0”不会改变任何内容。谢谢。

server {
    listen 443 ssl spdy;
    root /var/www;

    server_name mydomain.com www.mydomain.com;
    ssl_certificate /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key /etc/nginx/ssl/ssl.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:RC4-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!CBC:!EDH:!kEDH:!PSK:!SRP:!kECDH;
    ssl_prefer_server_ciphers on;
    keepalive_timeout 70;
    include /var/www/wp-content/plugins/better-wp-security/rules.conf;
    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
            index index.php index.html index.htm;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/www;
    }

    location ~ \.php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            try_files $uri =404;
    }

} 服务器 { 监听 80; 服务器名称 mydomain.com www.mydomain.com; 重写 ^ https://$host$request_uri 永久; }

答案1

您的配置domain.comwww.domain.com没有问题。但问题是,servernginx(可能在主nginx.conf配置文件中)中定义了另一个“默认”配置,它响应 IP 请求。您需要删除该 catch-all 服务器配置。

相关内容