Reverse Proxy
Caddy
/etc/caddy/Caddyfile
artalk.your_domain.com {
tls /etc/caddy/ssl/cert.pem /etc/caddy/ssl/cert.key
reverse_proxy http://localhost:23366 {
header_up X-Forwarded-For {header.X-Forwarded-For}
}
}
Reload the Caddy configuration:
sudo systemctl reload caddy
Nginx
Assumptions:
- The domain you want to bind is:
artalk.your_domain.com
- Artalk local address:
http://localhost:23366
For Ubuntu 20.04:
Create the site configuration file:
sudo vim /etc/nginx/sites-available/artalk.your_domain.com
Edit the reverse proxy configuration file:
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/;
}
}
Create a symbolic link to enable the site:
sudo ln -s /etc/nginx/sites-available/artalk.your_domain.com /etc/nginx/sites-enabled/
Check if the configuration file is valid:
sudo nginx -t
If the configuration is correct, restart Nginx:
sudo systemctl restart nginx
Configure the frontend:
Artalk.init({ server: 'http://artalk.your_domain.com' })
TIP
You can also add a layer of CDN and SSL.
Pay attention to the configuration file permissions and the accessibility of the reverse proxy target URL.
Especially if Artalk is running inside a Docker container, make sure the IP and port can be accessed by Nginx.
Apache
You need to enable the reverse proxy module 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>
BaoTa Panel (宝塔面板)
First, create a site (e.g., artalk.your_domain.com
), then click the site "Settings":
Open the "Reverse Proxy" tab, click "Add Reverse Proxy", fill in the "Target URL" with http://localhost:port
(where the port corresponds to the Artalk port), and fill in the "Send Domain" with $host
, as shown in the figure:
Getting the Accurate IP Address
When using a reverse proxy server, you need to configure the proxy headers to get the user's accurate IP address. Refer to the IP Region documentation for more details.