Nginx反向代理不适用于AWS Lightsail实例上托管的服务器

Nginx反向代理不适用于AWS Lightsail实例上托管的服务器,nginx,reverse-proxy,shiny-server,amazon-lightsail,Nginx,Reverse Proxy,Shiny Server,Amazon Lightsail,我是nginx新手,正在尝试将反向代理配置到一个闪亮的服务器(Open),我已经在AWS Lightsail实例上成功实现了这个服务器。我在这一点上感到绝望,并希望得到任何建议。以下是相关的配置安排 请注意,我已经从GoDaddy购买了一个自定义域。假设它名为mydomain.com.au。然而,当我通过Netlify中的blogdownR包部署我的网站时,我已经将名称服务器更改为指向Netlify Lightsail实例详细信息 它安装了一个闪亮的服务器,并分配了一个静态IP地址。从这一点开始

我是nginx新手,正在尝试将反向代理配置到一个闪亮的服务器(Open),我已经在AWS Lightsail实例上成功实现了这个服务器。我在这一点上感到绝望,并希望得到任何建议。以下是相关的配置安排

请注意,我已经从GoDaddy购买了一个自定义域。假设它名为mydomain.com.au。然而,当我通过Netlify中的
blogdown
R包部署我的网站时,我已经将名称服务器更改为指向Netlify

Lightsail实例详细信息 它安装了一个闪亮的服务器,并分配了一个静态IP地址。从这一点开始,假设123.45.67.89。防火墙详细信息如下所示:

我可以通过http://123.45.67.89:3838 以及我部署的相关闪亮应用程序。我添加了一个DNS区域记录,以便将mydomain.com.au链接到Lightsail实例上我的闪亮服务器-请参阅下面的详细信息:

Record Type: A
Subdomain: shiny.mydomain.com.au
Resolves to: 123.45.67.89 (i.e. static IP address)
网络细节 我在Netlify中为mydomain.com.au添加了一个DNS记录,该记录指向Lightsail实例的静态IP地址。下面是详细信息(我不确定是否需要Netlify和Lightsail中的DNS记录)。注意:这是启用了SSL/TLS证书,不能禁用(即使指定了“http://”,它也会自动恢复为“https://”)

nginx详细信息 下面是
/etc/nginx/sites enabled/default
文件的相关详细信息,我根据本文的说明修改了该文件。
$http\u升级
$connection\u升级
存储在
/etc/nginx/nginx.conf
文件中。没有添加来自
certbot
的SSL/TLS证书,我不确定这是否是一个问题

server {
    listen [::]:80 default_server;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name shiny.mydomain.com.au;

    # Reverse proxy to port 3838
    location / {
        proxy_pass http://localhost:3838/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 20d;
        proxy_buffering off;

        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        # try_files $uri $uri/ =404;
}       
nginx配置测试似乎成功:

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
以下防火墙配置文件(来自
sudo ufw status
)已设置-Nginx HTTP、OpenSSH、3838和80。根据
sudo service nginx status
,nginx处于活动状态,并且也在运行,没有任何问题

什么有效?
  • http://123.45.67.89:3838/ 成功打开闪亮服务器索引页
  • https://shiny.mydomain.com.au:3838/ 成功打开闪亮服务器索引页
其他信息?
  • 访问https://shiny.mydomain.com.au:3838将自动尝试https://123.45.67.89:443最终失败并超时。重定向到123.45.67.89似乎可行,但无法转发到3838端口。Firefox网络监控表明
    服务器是nginx
可能会发生什么? 在这一点上(我对web管理非常陌生),我认为这可能是一个无法重定向到闪亮服务器端口(HTTP?)的问题。然而,访问https://shiny.mydomain.com.au:3838成功重定向到闪亮服务器索引页面。我就是不明白为什么nginx在没有根据默认配置文件在URL中指定它的情况下不能成功地转发到3838端口

有什么问题? 加载shinny.mydomain.com.au不会成功加载shinny服务器索引页。它最终将超时,并且不会加载任何页面(“连接已超时”)。检查Firefox中的网络监控信息表示尝试访问123.45.67.89,但未访问123.45.67.89:3838(即闪亮服务器)。它似乎根本没有根据
/etc/nginx/sites enabled/default
文件重定向

我尝试将
localhost
更改为
127.0.0.1
,但没有成功。我也尝试过跟随,但仍然没有成功

有人能帮助我如何让nginx作为反向代理工作吗

我真的没什么主意了。谢谢

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful