如何使用 GCP 上的 NGINX 从外部 IP 访问内部 IP?

如何使用 GCP 上的 NGINX 从外部 IP 访问内部 IP?

我无法通过外部 IP 连接到应用程序。

我开始格里特GCP 的 Compute Engine 实例(带有 CentOS 7)上的代码审查应用程序。

它在控制台上运行,curl http://localhost:8080但我无法通过外部 IP 连接到它。

我也尝试过创建一个 NGINX 服务器。安装 NGINX 后,启动页面显示在外部 IP 上,但反向代理配置不显示 gerrit 注册页面。

server {
listen 80;

access_log /var/log/nginx/gerrit_access.log;
error_log /var/log/nginx/gerrit_error.log;

location / {
    proxy_pass   http://127.0.0.1:8080;
    index  index.html index.htm;
    try_files $uri $uri/ =404;
}
}

gerrit.config
[httpd]
listenUrl = proxy-http://127.0.0.1:8080/

最后,我想在使用外部 IP 时查看 gerrit 注册页面。

答案1

Nginx 反向代理配置似乎正确,但如果要将其暴露给外界,我强烈建议使用 HTTPS。

您需要记住以下几点:

  • 确保 gerrit 正在运行并监听端口 8080。您可以使用 来执行此操作netstat -atun | grep 8080
  • 我也会查看这个文件以确保你的 gerrit 配置正确。
  • 如果您在创建 VM 实例时不允许 HTTP 流量,则需要使用默认的“http-server”防火墙标签来标记该实例。
  • 确保firewalld 没有阻止传入的流量。

如果这些都不能解决问题,我将首先查看 nginx 日志并检查浏览器上的输出。

答案2

确保应用程序正在监听 0.0.0.0,并确保该端口的防火墙已启用。

相关内容