反向代理端口到 80 / 443

Nginx

假定:

  • 你想绑定的域名是:artalk.your_domain.com
  • ArtalkGo 本地地址:http://localhost:23366

以 Ubuntu 20.04 为例:

创建站点配置文件:

sudo vim /etc/nginx/sites-available/artalk.your_domain.com

编辑反向代理配置文件:

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

  server_name artalk.your_domain.com;

  location / {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:23366/;
  }
}

创建软链接启用站点:

sudo ln -s /etc/nginx/sites-available/artalk.your_domain.com /etc/nginx/sites-enabled/

验证配置文件是否有效:

sudo nginx -t

配置没有问题,重启 Nginx:

sudo systemctl restart nginx

配置前端:

new Artalk({ server: "http://artalk.your_domain.com" })

提示

你还可以再套一层 CDN,然后加上 SSL

注意配置文件权限,以及反代目标 URL 可访问性

尤其是运行在 Docker 容器内的 artalk-go,注意检查 IP 和端口是否能够被 Nginx 正常访问

Caddy

创建 Caddyfile:

artalk.your_domain.com {
  reverse_proxy / http://localhost:23366
}

Apache

需要启用反代模块 mod_proxy.c

<VirtualHost *:80>
    ServerName your_domain.xxx
    ServerAlias

    RewriteEngine On
    RewriteCond %{QUERY_STRING} transport=polling         [NC]
    RewriteRule /(.*)           http://localhost:23366/$1 [P]

    <IfModule mod_proxy.c>
        ProxyRequests Off
        SSLProxyEngine on
        ProxyPass / http://localhost:23366/
        ProxyPassReverse / http://localhost:23366/
    </IfModule>
</VirtualHost>

宝塔面板

首先创建一个站点 (例如 artalk.your_domain.com),然后点击站点的「设置」:

打开「反向代理」选项卡,点击「添加反向代理」,「目标 URL」填写 http://localhost:端口号(端口号与 ArtalkGo 端口对应),「发送域名」填写 $host,如图: