在我的服务器上,所有对 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.com
和www.domain.com
没有问题。但问题是,server
在nginx
(可能在主nginx.conf
配置文件中)中定义了另一个“默认”配置,它响应 IP 请求。您需要删除该 catch-all 服务器配置。