diff --git a/api/nginx/modules.go b/api/nginx/modules.go new file mode 100644 index 00000000..1d52275e --- /dev/null +++ b/api/nginx/modules.go @@ -0,0 +1,17 @@ +package nginx + +import ( + "net/http" + + "github.com/0xJacky/Nginx-UI/internal/nginx" + "github.com/gin-gonic/gin" +) + +func GetModules(c *gin.Context) { + modules := nginx.GetModules() + modulesList := make([]nginx.Module, 0, modules.Len()) + for _, module := range modules.AllFromFront() { + modulesList = append(modulesList, module) + } + c.JSON(http.StatusOK, modulesList) +} diff --git a/api/nginx/router.go b/api/nginx/router.go index 9ac59c95..d12a3577 100644 --- a/api/nginx/router.go +++ b/api/nginx/router.go @@ -27,4 +27,6 @@ func InitRouter(r *gin.RouterGroup) { // Performance optimization endpoints r.GET("nginx/performance", GetPerformanceSettings) r.POST("nginx/performance", UpdatePerformanceSettings) + + r.GET("nginx/modules", GetModules) } diff --git a/app/src/api/ngx.ts b/app/src/api/ngx.ts index 3349445a..c345c0f8 100644 --- a/app/src/api/ngx.ts +++ b/app/src/api/ngx.ts @@ -104,6 +104,13 @@ export interface NginxPerfOpt { proxy_cache: ProxyCacheConfig } +export interface NgxModule { + name: string + params?: string + dynamic: boolean + loaded: boolean +} + const ngx = { build_config(ngxConfig: NgxConfig) { return http.post('/ngx/build_config', ngxConfig) @@ -152,6 +159,10 @@ const ngx = { update_performance(params: NginxPerfOpt): Promise { return http.post('/nginx/performance', params) }, + + get_modules(): Promise { + return http.get('/nginx/modules') + }, } export default ngx diff --git a/app/src/layouts/SideBar.vue b/app/src/layouts/SideBar.vue index c6c32682..86f22b68 100644 --- a/app/src/layouts/SideBar.vue +++ b/app/src/layouts/SideBar.vue @@ -1,10 +1,12 @@