docker部署笔记软件memos,通过5320端口访问,如何通过nginx反向代理配置访问?
互联网各领域资料分享专区(不定期更新):
Sheet
正文
以下是使用Nginx反向代理部署Memos的步骤:
1. 确保Docker已正确运行Memos
bash
docker run -d \ --name memos \ -p 5320:5230 \ -v /your/path/data:/var/opt/memos \ ghcr.io/usememos/memos:latest
-
确认容器运行状态:
docker ps
-
验证直接访问:
http://服务器IP:5320
2. 安装Nginx(若未安装)
bash
# Ubuntu/Debian sudo apt update && sudo apt install nginx # CentOS/RHEL sudo yum install epel-release && sudo yum install nginx
3. 配置Nginx反向代理
创建配置文件:
bash
sudo nano /etc/nginx/sites-available/memos.conf
HTTP基础配置(端口80)
nginx
server { listen 80; server_name memos.your-domain.com; # 改为你的域名 location / { proxy_pass http://localhost:5320; 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_set_header X-Forwarded-Proto $scheme; } }
HTTPS推荐配置(使用Let's Encrypt)
bash
# 获取证书(先确保域名解析已生效) sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d memos.your-domain.com
自动生成的配置示例:
nginx
server { server_name memos.your-domain.com; listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/memos.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/memos.your-domain.com/privkey.pem; location / { proxy_pass http://localhost:5320; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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_set_header X-Forwarded-Proto $scheme; } } server { listen 80; server_name memos.your-domain.com; return 301 https://$host$request_uri; }
4. 启用配置并重启Nginx
bash
sudo ln -s /etc/nginx/sites-available/memos.conf /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置 sudo systemctl restart nginx
5. 防火墙配置(如有需要)
bash
# 开放HTTP/HTTPS端口 sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
6. 验证访问
-
直接访问:
http://服务器IP:5320
-
通过域名访问:
https://memos.your-domain.com
常见问题排查
-
502 Bad Gateway 错误:
-
检查Memos容器是否运行:
docker ps
-
查看容器日志:
docker logs memos
-
确认Nginx的
proxy_pass
地址是否正确
-
-
SSL证书问题:
-
续期证书:
sudo certbot renew --dry-run
-
检查证书路径权限
-
-
缓存问题:
-
强制刷新浏览器缓存:
Ctrl+F5
-
清除Nginx缓存:
sudo rm -rf /var/cache/nginx/*
-
通过以上步骤,即可实现通过Nginx反向代理安全访问Memos服务。建议始终使用HTTPS以保障数据传输安全。