我的Windows 10计算机上有一个本地NginX测试服务器。这仅适用于创建和测试网站,不适用于互联网。
我已经在localhost
成功测试了一个网站一段时间,但现在我想添加第二个测试网站。我想我可以通过复制server{}
文件中的nginx.conf
块并更改server_name
的名称和其他一些参数来实现这一点,但它似乎并不是工作。当我尝试在Chrome中加载我的第二个测试网站时,出现此错误:
无法访问此网站
无法找到local_test_2的服务器DNS地址。
我的localhost
网站仍然可以使用。
为什么我的第二个测试网站无效?
这是我当前的nginx.conf
文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/html;
sendfile on;
keepalive_timeout 65;
server {
#Server basics
server_name localhost;
listen 80;
index index.html index.php;
root c:/nginx/html;
location / {
try_files $uri $uri/ /index.php?_url=$uri&$query_string;
}
location ~ .(php|htm|html)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME c:/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
}
server {
#Server basics
server_name local_test_2;
listen 80;
index index.html index.php;
root "C:\Users\User Name\Documents\Test\example.com";
location / {
try_files $uri $uri/ /index.php?_url=$uri&$query_string;
}
location ~ .(php|htm|html)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME c:/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
}
}
更新
我的C:\Windows\System32\drivers\etc\hosts
文件包含以下内容:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
当前' localhost'规范被注释掉了。我应该更改此文件吗?
答案 0 :(得分:2)
您需要在Windows主机文件中添加local_test_2
:
C:\Windows\System32\drivers\etc\hosts
在主机文件中添加最后一行
127.0.0.1 local_test_2
检查nginx中设置新主机的引用
答案 1 :(得分:1)
hosts
是您为测试目的而创建的网址。由于您没有从某个注册商处购买,因此没有DNS提供商能够将网址解析为IP地址。
每个操作系统都有一个/etc/hosts
文件(在linux中它将是127.0.0.1 local_test_2
),可用于将网址映射到IP地址,而无需使用某些在线DNS服务。因此,在您的情况下,您可以附加以下行,
local_test_2
告诉将127.0.0.1
的所有请求路由到同一台机器({{1}})。主机文件中不需要进行任何其他更改。
有关主机文件和不同操作系统中使用的不同文件的更多详细信息,请参阅this link。