我如何配置我的 nginx 使我的网络应用程序可以通过 ip 和域名访问?

How can i configure my nginx to make my web app be accessed by both ip and domain name?

我希望能够通过 ip 和 domain.with 我当前的配置访问我的网络应用程序我只能访问其中一个,具体取决于我在服务器名称上输入的内容 属性 server_name: ip|domain 这是我的配置方式

server {
server_name ip-address here;


location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_pass http://localhost:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

就像@Amin 评论的那样,您可以将您的 IP 添加为“服务器名称”,例如:

server_name 171.233.45.4 www.mydomain.com;

但是不鼓励这样做,因为服务器名称指令的要点是让多个域或子域托管在同一 IP 地址上。 IE。你想在 171.233.45.4 提供两个应用程序,NGINX 可以区分它们,因为一个 server_name my_app.com; 而另一个 server_name potatos.com;.

如果您希望通过 IP 访问,则表示您 运行 只有该地址+端口组合上的一项服务,这意味着您不需要指定服务器名称,而只需在主机中配置 DNS文件或在您的路由器中。

最简单的配置是:

server {
 listen 80;

 ...
}

其中 80 是服务端口号。然后,如果您配置主机文件或某种 DNS 服务以将您的主机名指向服务器的 IP,您将能够通过 IP 和主机名访问服务器。