使用 IP 作为服务器名称设置 nginx

使用 IP 作为服务器名称设置 nginx

如何设置 nginx 并使用 IP 地址作为服务器名称?

server {
    listen  80;
    server_name  xx.xx.xx.xx;

    location /test {
        root  /var/www/test;
    }

    location ~ \.php$ {
        include  /var/ini/nginx/fastcgi.conf;
        fastcgi_pass  php;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/test$fastcgi_script_name;
    }
}

所以我想像这样访问服务器

http://xx.xx.xx.xx/test/ => index.php
http://xx.xx.xx.xx/test/foo.php => foo.php

答案1

您只需将 IP 地址作为服务器名称即可:

server {
    listen 80;
    server_name 192.168.1.21;
    ...
}

您可能还想更改配置以仅监听指定的 IP 地址:

server {
    listen 192.168.1.21:80;
    server_name 192.168.1.21;
    ...
}

以下内容来自文档:http://nginx.org/en/docs/http/server_names.html

如果有人使用 IP 地址而不是服务器名称发出请求,则“Host”请求标头字段将包含 IP 地址,并且可以使用 IP 地址作为服务器名称来处理该请求:

server {
    listen       80;
    server_name  example.org
                 www.example.org
                 ""
                 192.168.1.1
                 ;
    ...
}

相关内容