如何使用expressjs作为服务器运行,将服务器的IP地址正确重定向到Nginx中的域名主机名

问题描述 投票:0回答:2

我目前正在尝试使用 Nginx 和 ExpressJS 设置一个 Web 服务器。目前,当我在地址栏中输入 123.456.789.999 时它会工作,并且它会加载,但是我试图正确地从 123.456.789.999 重定向到 example.com。我尝试添加一个侦听端口 80 的服务器块,并将其永久移动到第二个服务器块中的 example.com。但每当我在地址栏中输入 example.com 时,它都不会加载。

在我的域管理器中,我设置了以下内容

| Record     | Name |      Value      | TTL   |
|------------|------|-----------------|-------|
|    A       |   @  | 123.456.789.999 | 1 Day |
|  CNAME     |  www |         @       | 1 Hour|

其余均为默认值。

server {
            listen 80;
            listen [::]:80 default_server;

    root /var/www/html/;
    index index.html index.htm;
    server_name example.com www.example.com;
    location / {

        }
}

server {
        listen 80;
        server_name 123.456.789.999;
        return 301 $scheme://example.com$request_uri;
}
nginx webserver
2个回答
1
投票

在 Web 应用程序前面使用 NGINX 作为反向代理是一种非常常见的用途,是的。首先你应该了解一些基础知识。

您的服务的用户知道域

example.com
。您的 Web/代理/应用程序服务器 IP 地址需要使用 DNS 链接到域。这一步(看起来)已经完成了。干得好。

NGINX 代理服务器设置

假设您正在使用nodeJS/express来运行一个应用程序,侦听

3000
上的端口
localhost
,并且您希望将其作为
example.com
的主要应用程序。

#Define an upstream block for your service.

upstream my-backend {
  server 127.0.0.1:3000;
}

#Define your main server configuration

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://my-backend;
    proxy_set_header Host $host;
  }
}

请参阅以下参考:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

了解 NGINX 配置语法以及如何组织配置以充分利用它非常重要。我有一个关于它的视频。 https://youtu.be/nhSYFL1tufM


0
投票

这个线程看起来有点旧(2年多了),但我昨天在自己处理类似的问题时遇到了它。这对我有用;

#nginx.conf:

server {
    listen       80;
    listen       443 ssl;
    server_name  www.example.com;

    # redirect requests that doesn't include the server_name (i.e. made for the IP address) to it; 
    if ($host != $server_name) {
        return 301 $scheme://$server_name$request_uri;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.