Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions agent/app/dto/request/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ type StreamConfig struct {
StreamPorts string `json:"streamPorts"`
Name string `json:"name"`
Algorithm string `json:"algorithm"`
UDP bool `json:"udp"`

Servers []dto.NginxUpstreamServer `json:"servers"`
}
Expand Down
1 change: 1 addition & 0 deletions agent/app/dto/response/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ type WebsiteDTO struct {
SiteDir string `json:"siteDir"`
OpenBaseDir bool `json:"openBaseDir"`
Algorithm string `json:"algorithm"`
UDP bool `json:"udp"`

Servers []dto.NginxUpstreamServer `json:"servers"`
}
Expand Down
15 changes: 13 additions & 2 deletions agent/app/service/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,13 @@ func (w WebsiteService) GetWebsite(id uint) (response.WebsiteDTO, error) {
if err != nil {
return res, err
}
listens := config.FindDirectives("listen")
for _, listen := range listens {
params := listen.GetParameters()
if len(params) > 1 && params[1] == "udp" {
res.UDP = true
}
}
upstreams := config.FindUpstreams()
for _, up := range upstreams {
directives := up.GetDirectives()
Expand Down Expand Up @@ -2342,10 +2349,14 @@ func (w WebsiteService) UpdateStream(req request.StreamUpdate) error {
}
server := servers[0]
server.Listens = []*components.ServerListen{}
var params []string
if req.UDP {
params = []string{"udp"}
}
for _, port := range ports {
server.UpdateListen(port, false)
server.UpdateListen(port, false, params...)
if website.IPV6 {
server.UpdateListen("[::]:"+port, false)
server.UpdateListen("[::]:"+port, false, params...)
}
}
upstream := components.Upstream{
Expand Down
8 changes: 6 additions & 2 deletions agent/app/service/website_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,14 @@ func configDefaultNginx(website *model.Website, domains []model.WebsiteDomain, a
}
server := servers[0]
ports := strings.Split(streamConfig.StreamPorts, ",")
var params []string
if streamConfig.UDP {
params = []string{"udp"}
}
for _, port := range ports {
server.UpdateListen(port, false)
server.UpdateListen(port, false, params...)
if website.IPV6 {
server.UpdateListen("[::]:"+port, false)
server.UpdateListen("[::]:"+port, false, params...)
}
}
siteFolder := path.Join("/www", "sites", website.Alias)
Expand Down
1 change: 1 addition & 0 deletions frontend/src/api/interface/website.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export namespace Website {
dbType: string;
favorite: boolean;
streamPorts: string;
udp: boolean;
}

export interface WebsiteDTO extends Website {
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2756,6 +2756,7 @@ const message = {
streamPortsHelper:
'Set the external listening port number, clients will access the service through this port, separated by commas, e.g., 5222,5223',
streamHelper: 'TCP/UDP Port Forwarding and Load Balancing',
udp: 'Enable UDP',

syncHtmlHelper: 'Sync to PHP and static websites',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/es-es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2748,6 +2748,7 @@ const message = {
streamPortsHelper:
'Configura el número de puerto de escucha externo, los clientes accederán al servicio a través de este puerto, separado por comas, p. ej., 5222,5223',
streamHelper: 'Reenvío de Puertos y Balanceo de Carga TCP/UDP',
udp: 'Habilitar UDP',

syncHtmlHelper: 'Sincronizar con PHP y sitios web estáticos',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2679,6 +2679,7 @@ const message = {
streamPortsHelper:
'外部リスニングポート番号を設定します。クライアントはこのポートを通じてサービスにアクセスします。カンマで区切ってください。例:5222,5223',
streamHelper: 'TCP/UDP ポート転送とロードバランシング',
udp: 'UDPを有効化',

syncHtmlHelper: 'PHP と静的ウェブサイトに同期',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2635,6 +2635,7 @@ const message = {
streamPortsHelper:
'외부 수신 포트 번호를 설정합니다. 클라이언트는 이 포트를 통해 서비스에 액세스합니다. 쉼표로 구분하세요. 예: 5222,5223',
streamHelper: 'TCP/UDP 포트 포워딩 및 로드 밸런싱',
udp: 'UDP 활성화',

syncHtmlHelper: 'PHP 및 정적 웹사이트에 동기화',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2737,6 +2737,7 @@ const message = {
streamPortsHelper:
'Tetapkan nombor port pendengaran luaran, pelanggan akan mengakses perkhidmatan melalui port ini, dipisahkan dengan koma, cth., 5222,5223',
streamHelper: 'Penerusan Port dan Pengimbangan Beban TCP/UDP',
udp: 'Dayakan UDP',

syncHtmlHelper: 'Segerakkan ke PHP dan laman web statik',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/pt-br.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2742,6 +2742,7 @@ const message = {
streamPortsHelper:
'Defina o número da porta de escuta externa, os clientes acessarão o serviço através desta porta, separados por vírgulas, por exemplo: 5222,5223',
streamHelper: 'Encaminhamento de Portas e Balanceamento de Carga TCP/UDP',
udp: 'Habilitar UDP',

syncHtmlHelper: 'Sincronizar com PHP e sites estáticos',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2737,6 +2737,7 @@ const message = {
streamPortsHelper:
'Установите номер внешнего порта прослушивания, клиенты будут получать доступ к службе через этот порт, разделяйте запятыми, например: 5222,5223',
streamHelper: 'Перенаправление портов и балансировка нагрузки TCP/UDP',
udp: 'Включить UDP',

syncHtmlHelper: 'Синхронизировать с PHP и статическими сайтами',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/tr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2794,6 +2794,7 @@ const message = {
streamPortsHelper:
'Harici dinleme bağlantı noktası numarasını ayarlayın, istemciler bu bağlantı noktası üzerinden hizmete erişecektir, virgülle ayırın, örn.: 5222,5223',
streamHelper: 'TCP/UDP Port Yönlendirme ve Yük Dengeleme',
udp: "UDP'yi etkinleştir",

syncHtmlHelper: 'PHP ve statik web siteleriyle senkronize et',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/zh-Hant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2566,6 +2566,7 @@ const message = {
streamPorts: '監聽端口',
streamPortsHelper: '設定對外監聽的埠號,客戶端將透過此埠存取服務,按逗號分割,例如:5222,5223',
streamHelper: 'TCP/UDP 端口轉發與負載均衡',
udp: '啟用 UDP',

syncHtmlHelper: '同步到 PHP 和靜態網站',
},
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2563,6 +2563,7 @@ const message = {
streamPorts: '监听端口',
streamPortsHelper: '设置对外监听的端口号,客户端将通过此端口访问服务,按逗号分割,例如:5222,5223',
streamHelper: 'TCP/UDP 端口转发与负载均衡',
udp: '启用 UDP',

syncHtmlHelper: '同步到 PHP 和静态网站',
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
<el-form-item :label="$t('website.streamPorts')" :rules="Rules.requiredInput">
<el-input v-model="form.streamPorts" />
</el-form-item>
<el-form-item prop="udp">
<el-checkbox v-model="form.udp" :label="$t('website.udp')" size="large" />
</el-form-item>
<LoadBalanceForm ref="lbFormRef" v-model="form" :disabled="true" />
<el-form-item>
<el-button type="primary" @click="submit()" class="mt-2">
Expand Down Expand Up @@ -39,6 +42,7 @@ const form = ref({
name: '',
algorithm: '',
websiteID: props.id,
udp: false,
});
const streamFormRef = ref();
const lbFormRef = ref();
Expand Down Expand Up @@ -68,6 +72,7 @@ onMounted(async () => {
form.value.name = res.data.primaryDomain;
form.value.algorithm = res.data.algorithm == '' ? 'default' : res.data.algorithm;
form.value.streamPorts = res.data.streamPorts;
form.value.udp = res.data.udp;

let servers = [];
res.data?.servers?.forEach((server) => {
Expand Down
4 changes: 4 additions & 0 deletions frontend/src/views/website/website/create/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,9 @@
:placeholder="$t('website.streamPortsHelper')"
></el-input>
</el-form-item>
<el-form-item prop="udp">
<el-checkbox v-model="website.udp" :label="$t('website.udp')" size="large" />
</el-form-item>
</div>
<div v-else>
<DomainCreate v-model:form="website" @gengerate="websiteForm.clearValidate()"></DomainCreate>
Expand Down Expand Up @@ -507,6 +510,7 @@ const initData = () => ({
siteDir: '',

streamPorts: '',
udp: false,
name: '',
algorithm: '',
servers: [],
Expand Down
Loading