使用 NGINX 配置多个域和 IP 地址

使用 NGINX 配置多个域和 IP 地址

我之前在论坛上问过,但没有得到答复,所以我打算再试一次。

我正在尝试使用 PHPMyAdmin 设置 NGINX,并希望通过两个子域和一个 IP 地址访问该网站。以下 URL 均指向同一个根文件夹:-

  • phpmyadmin.localhost(仅可通过主机访问)
  • phpmyadmin.ubuntu-pc.lan(可通过其他 LAN 机器访问)
  • 192.168.0.123/phpmyadmin(可通过其他 LAN 机器访问)

这是我当前的服务器块

# PHPMyAdmin
#
server {
    listen 80;
    listen [::]:80;
    #listen 443 ssl;
    #listen [::]:443 ssl;

    root /var/www/html/phpmyadmin;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name 192.168.1.123 phpmyadmin.localhost phpmyadmin.ubuntu-pc.lan;

    location / {
        try_files $uri $uri/ $uri/index.php =404;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

有人能告诉我如何实现这个目标吗?

更新

我遇到的问题是,当从 LAN 上的另一台设备访问 Ubuntu 机器时,我无法访问尾随目录 192.168.xxx.xxx/phpmyadmin 或子域 phpmyadmin.ubuntu-pc.lan 的 IP 地址。

相反,它们都可以在不经过尾随目录和子域的情况下访问。

答案1

您需要server为您的配置设置单独的块。

server {
    listen 127.0.0.1:80;

    server_name phpmyadmin.localhost;

    ...
}

server {
    listen 192.168.1.123:80;

    server_name 192.168.1.123 phpmyadmin.ubuntu-pc.lan;

    ...
}

相关内容