我有一个在自定义节点上运行的 Rancher 集群 (v2.4.5),配置如下:
user nginx;
worker_processes 4;
worker_rlimit_nofile 40000;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 8192;
}
http {
upstream rancher_servers {
least_conn;
server <MY_NODE_IP>:443 max_fails=3 fail_timeout=5s;
}
server {
listen 443 ssl http2;
server_name example.com service1.example.com service2.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://rancher_servers;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 900s; …Run Code Online (Sandbox Code Playgroud) 我使用 DRF 来实现一个简单的 API,我想知道是否有办法实现这种行为:
class Table(models.Model):
name = models.CharField(max_length=100)
...
class Column(models.Model):
original_name = models.CharField(max_length=100)
name = models.CharField(max_length=100, blank=True, null=True)
...
table = models.ForeignKey(Table, on_delete=models.CASCADE, related_name="columns")
Run Code Online (Sandbox Code Playgroud)
class ColumnSerializer(serializers.HyperlinkedModelSerializer):
table = serializers.HyperlinkedRelatedField(
read_only=True, view_name="table-detail"
)
class Meta:
model = Column
fields = ["url", "name", "table"]
class TableSerializer(serializers.HyperlinkedModelSerializer):
dataset = serializers.HyperlinkedRelatedField(
read_only=True, view_name="dataset-detail"
)
tags = serializers.SlugRelatedField(
many=True, slug_field="name", queryset=Tag.objects.all()
)
columns = ColumnSerializer(many=True, read_only=True)
class Meta:
model = Table
fields = [
"url",
"name",
...
"columns",
]
Run Code Online (Sandbox Code Playgroud)
{ …Run Code Online (Sandbox Code Playgroud) 我有一个正在运行的 Rancher 设置,如下所示:
我的目标是使用 Rancher Load Balancing 或任何类似的东西来为 Web 应用程序提供服务。为此,我执行了以下步骤:
.xip.io主机名”并将路由“/”添加到端口 80 上的“web-app”。这适用于本地网络,因为我得到了一个像http://hello.gabriel-milan.10.1.1.14.xip.io/这样的地址,它将解析为 10.1.1.14,这是本地的。
我想为我的一个公共 IP 公开此服务。我怎样才能做到这一点?