通过IP打开URL

时间:2016-01-15 19:24:41

标签: php nginx

我有带nginx服务器的远程服务器机器。我创建了sites-availablesites-enabled个文件夹,其中有一个名为example.com的文件夹,其配置如下:

#HTTP serve
#
server {
        listen   80;

        root /var/www/example.com/www/;
        index index.php index.html index.htm;

        server_name example.com;

        access_log /var/log/nginx/example.com.access.log combined buffer=1024k;
        error_log /var/log/nginx/example.com.error.log;

        client_max_body_size 128M;

        if (!-e $request_filename) {
                rewrite ^/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ /index.php?controller=$1&action=$2 last;
        }

        location ~ \.php$ {
                if (!-f $document_root/$fastcgi_script_name){
                        return 404;
                }

                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                proxy_connect_timeout 600s;
                proxy_read_timeout 600s;
                include fastcgi_params;
        }

        location ~ /\.ht {
                deny all;
        }
}

当我在浏览器中输入/var/www/example.com/www网址时,它应该将我重定向到http://example.com/。但我还没有这个域名,我想通过服务器IP xxx.xxx.xxx.xxx打开它。我该怎么做?

我应该将文件夹重命名为IP吗?那时我无法访问其他文件夹。

1 个答案:

答案 0 :(得分:2)

由@ceejayoz声明并由http://nginx.org/en/docs/http/server_names.html确认,您可以在server_name下指定IP地址:

  

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

否则,如果没有匹配server_name,则默认操作是使用配置文件中的第一个服务器。

http://nginx.org/en/docs/http/request_processing.html#mixed_name_ip_based_servers

  

在此配置中,nginx仅测试请求的标头字段“Host”,以确定请求应路由到哪个服务器。如果其值与任何服务器名称都不匹配,或者请求根本不包含此标头字段,则nginx会将请求路由到此端口的默认服务器。在上面的配置中,默认服务器是第一个 - 这是nginx的标准默认行为。

您可以查看server_name的default_server选项,如第二个链接中所述。