首页 > 解决方案 > 如何使用 NGINX 进行 DNS 映射

问题描述

我对 NGINX 真的很陌生。

目前,我的服务器中有一个容器化应用程序(PHP 应用程序);可以通过192.168.1.20:8080查看(ip地址只是一个例子)。该应用程序非常好。

但是,我希望我的应用能够通过“my-domain-name.com/my-app”查看。我能做到这一点吗?我已经搜索了解决方案,其中很多都在使用子域。

我还在 /etc/nginx/sites-available/my-app 下尝试了以下配置。但它们都不起作用。

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

    server_name my-domain-name.com/my-app;

    location / {
        proxy_pass http://192.168.1.20:8080;
    }
}
server {
root /var/www/html;
        listen 80; 
        listen [::]:80;
        server_name my-domain-name.com/my-app www.my-domain-name.com/my-app;
        location / {
            proxy_pass         http://192.168.1.20:8080;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
}

标签: nginxdnsdigital-ocean

解决方案


server_nameproperty 需要域名并且不支持子目录。

您可以在location属性中指定路径:

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

    server_name my-domain-name.com;

    location /my-app {
        proxy_pass http://192.168.1.20:8080;
    }
}

(来源:nginx 文档


推荐阅读