侧边栏壁纸
博主头像
Lin2J博主等级

升级了服务器,访问应该会更加流畅🇨🇳

  • 累计撰写 99 篇文章
  • 累计创建 43 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

Nginx配置反向代理时出现:The character [_] is never valid in a domain name

Lin2J
2022-02-15 / 0 评论 / 0 点赞 / 791 阅读 / 1,674 字 / 正在检测是否收录...

问题:

想使用 nginx 的反向代理功能通过url前缀转发到对应的服务模块去,却发生下面的错误。

java.lang.IllegalArgumentException: The character [_] is never valid in a domain name.
	org.apache.tomcat.util.http.parser.HttpParser$DomainParseState.next(HttpParser.java:974)
	org.apache.tomcat.util.http.parser.HttpParser.readHostDomainName(HttpParser.java:870)
	org.apache.tomcat.util.http.parser.Host.parse(Host.java:71)
	org.apache.tomcat.util.http.parser.Host.parse(Host.java:45)
	org.apache.coyote.AbstractProcessor.parseHost(AbstractProcessor.java:294)
	org.apache.coyote.http11.Http11Processor.prepareRequest(Http11Processor.java:776)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:349)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.base/java.lang.Thread.run(Thread.java:829)
  upstream mgr_upstream {
      server 127.0.0.1:8989;
  }

  server {
      listen       80;
      server_name  localhost;

      location / {
          root   html;
          index  index.html index.htm;
      }

      location /mgr {
          proxy_pass http://mgr_upstream/mgr;
      }
   ...

解决办法:

将配置文件内的 upstream 的名称中的下划线去掉即可。

  upstream mgrupstream {
      server 127.0.0.1:8989;
  }

  server {
      listen       80;
      server_name  localhost;

      location / {
          root   html;
          index  index.html index.htm;
      }

      location /mgr {
          proxy_pass http://mgrupstream/mgr;
      }
   ...

原因:

Tomcat版本问题。

0

评论区