配置 Nginx 反向代理
在/opt/serves/nginx/conf/server_blocks
下新建一个affine.conf
文件和一个default.conf
文件
affine.conf
用于把访问affine.your.domain
的流量代理至 Affine 监听的 3010 端口
server { |
listen 8080; # 映射的是pod外的80端口 |
server_name affine.your.domain; # 只有通过这个域名访问的流量才会被代理至Affine |
access_log /opt/bitnami/nginx/logs/affine.log; |
error_log /opt/bitnami/nginx/logs/affine.log; |
location / { |
proxy_set_header X-Real-IP $remote_addr; |
proxy_set_header HOST $http_host; |
proxy_set_header X-NginX-Proxy true; |
proxy_pass http://localhost:3010; # 代理至 Affine监听的3010端口 |
proxy_redirect off; |
} |
} |
default.conf
用于屏蔽域名不匹配的流量(可选)
当不是通过affine.your.domain
访问服务器时,直接关闭连接
server { |
listen 8080 default_server; |
server_name _; # 匹配任何 Host |
return 444; # 直接关闭连接(也可以 404 / 503) |
} |
完成上述步骤后,即可在浏览器中通过域名访问 affine 服务
注册 systemd 服务(推荐)
由于 podman 没有守护进程,所以没法开机自启动 pod 或容器,要借助 systemd 实现自启动
podman generate systemd --name mypod --new --files |
# 会生成下面这些文件 |
/opt/serves/container-doocs.service |
/opt/serves/container-affine_redis.service |
/opt/serves/container-affine_postgres.service |
/opt/serves/pod-mypod.service |
/opt/serves/container-affine_server.service |
/opt/serves/container-nginx.service |
把这些文件复制到用户的 systemd 目录下,没有这个目录就创建一个
mkdir -p ~/.config/systemd/user # 一般都有这个目录 |
cp *.service ~/.config/systemd/user |
重载 systemd 并应用服务
systemctl --user daemon-reload |
systemctl --user enable --now pod-mypod.service |
导出 pod 文件(推荐)
可以导出 pod 文件,这样下次再创建 pod 就不需要这么麻烦了
podman generate kube mypod>mypod.yaml # 导出pod配置,兼容k8s |
podmam play kube mypod.yaml # 可以从yaml文件重新创建mod |