Nginx 无需 DNS 即可重定向到 8080

Nginx 无需 DNS 即可重定向到 8080

在没有 DNS 的情况下是否可以使用 nginx 执行 proxy_pass ?

我能够在具有 DNS 的服务器中配置 SSL,这些服务器是我公司的 QA 和生产环境,但我根本无法配置 DEV 环境,但没有它的 DNS。

这是我在 QA 环境中使用的 SSL 配置,运行正常

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

  server_name myweb.com.br;
  return 301 https://$server_name$request_uri;
}


server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name myweb.com.br;

  ssl_certificate "/etc/letsencrypt/live/myweb.com.br/fullchain.pem";
  ssl_certificate_key "/etc/letsencrypt/live/myweb.com.br/privkey.pem";

  ssl_protocols TLSv1.1 TLSv1.2;

  ssl_dhparam "/etc/ssl/certs/dhparam.pem";
  ssl_session_cache shared:SSL:1m;
  ssl_session_timeout 10m;
  ssl_ciphers HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP;
  ssl_prefer_server_ciphers on;

  root /var/www;
  index index.html index.htm;

  location / {
    #Enable reverse proxying to Wildfly on internal port 8080  
    proxy_pass http://localhost:8080;

    #Tell NGINX to proxy these headers
    proxy_set_header sec_jbossremoting_key $http_sec_jbossremoting_key;
    proxy_set_header sec_hornetqremoting_key $http_sec_hornetqremoting_key;
    proxy_set_header upgrade $http_upgrade;
    proxy_set_header connection "upgrade";
    proxy_set_header host $http_host;
  }

}

我试图做一个较短的版本,因为我不是这个主题的专家,或者使用绑定了 IP 端口的默认配置,但我只得到了坏网关,而在日志中我什么也没有,只是尝试了一次访问。

10.22.2.36 - - [09/Mar/2020:08:06:06 -0300] "GET / HTTP/1.1" 502 559 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36" "-"
10.22.2.36 - - [09/Mar/2020:08:06:06 -0300] "GET /favicon.ico HTTP/1.1" 502 559 "http://10.233.133.6/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36" "-"

我本地机器上工作的 nginx 比较简单,基本上使用默认的conf 所带的内容。

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://localhost:8080;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

我尝试将服务器中的基本配置修改为其 IP,但均未成功。端口已打开,80 和 8080 均可访问,我可以在 80 中看到 nginx,在 8080 中看到我的 wildfly。

有人能帮我解决这个问题吗?或者告诉我是否可以在没有仅绑定到 IP 地址的 DNS 的情况下做到这一点。

答案1

尝试以下配置进行 Nginx 重定向

server {
        listen 80;
        server_name _;

        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Port 443;
            proxy_set_header Host $host;

        }
        location /.git {
            deny all;
            return 404;
        }
}

相关内容