You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法使用443端口时,如何配置Nginx实现Shiny应用无端口访问?

解决方案

由于运营商占用了443端口,无法直接通过默认HTTPS端口(443)实现无端口访问,我们可以通过HTTP默认端口(80)自动跳转至HTTPS 8443端口的方式,达成无需手动输入端口的访问效果,具体配置步骤如下:

1. 修复现有Nginx配置的语法错误

你的第二个server块存在语法问题,if语句的闭合括号位置错误,修改后代码如下:

server {
    if ($host = shiny-server.modlearth.com) {
        return 301 https://www.modlearth.com$request_uri;
    } # managed by Certbot

    listen 81;
    listen [::]:81;

    server_name shiny-server.modlearth.com;
    return 404; # managed by Certbot
}

2. 添加HTTP 80端口的重定向配置

新增一个监听80端口的server块,将所有HTTP请求自动跳转至HTTPS的8443端口:

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

    server_name shiny-server.modlearth.com www.shiny-server.modlearth.com;

    # 将HTTP请求自动重定向到带8443端口的HTTPS地址
    return 301 https://$server_name:8443$request_uri;
}

3. 验证配置并重启Nginx

  • 先检查Nginx配置语法是否合法:
    sudo nginx -t
    
  • 确认语法无误后,重启Nginx服务:
    sudo systemctl restart nginx
    

效果说明

配置完成后,用户只需输入 http://shiny-server.modlearth.com/shiny/,Nginx会自动将请求跳转至 https://shiny-server.modlearth.com:8443/shiny/,无需手动指定端口即可访问应用。

补充:若后续443端口可用的调整方案

如果运营商解除了443端口的占用,你可以将第一个server块的监听端口替换为443:

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot

同时将80端口重定向配置中的:8443移除:

return 301 https://$server_name$request_uri;

验证配置并重启Nginx后,即可实现纯HTTPS无端口访问。

内容的提问来源于stack exchange,提问作者César Arquero Cabral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:48:40