|
@@ -8,11 +8,11 @@ import (
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
|
|
"google.golang.org/grpc"
|
|
|
+ "google.golang.org/grpc/credentials"
|
|
|
"gopkg.in/olivere/elastic.v1"
|
|
|
"gopkg.in/yaml.v3"
|
|
|
"io/ioutil"
|
|
|
"log"
|
|
|
- "net"
|
|
|
"net/http"
|
|
|
"sensitiveWords.udp/proto_grpc"
|
|
|
"sensitiveWords.udp/util"
|
|
@@ -64,7 +64,6 @@ func init() {
|
|
|
|
|
|
es_type, es_index = "azktest", "azktest"
|
|
|
|
|
|
-
|
|
|
reg.MustRegister(grpcMetrics, customizedCounterMetric)
|
|
|
|
|
|
}
|
|
@@ -96,31 +95,35 @@ func main() {
|
|
|
go addTaskSensitiveWordsData() //增量-改配置文件
|
|
|
}
|
|
|
|
|
|
- lis, err := net.Listen("tcp", YamlConfig.Port)
|
|
|
+ mux := http.NewServeMux()
|
|
|
+ mux.Handle("/", promhttp.HandlerFor(reg, promhttp.HandlerOpts{}))
|
|
|
+ cred, err := credentials.NewServerTLSFromFile(YamlConfig.CertFile, YamlConfig.KeyFile)
|
|
|
if err != nil {
|
|
|
- log.Fatalf("failed to listen: %v", err)
|
|
|
- }
|
|
|
- defer lis.Close()
|
|
|
- // Create a HTTP server for prometheus.
|
|
|
- httpServer := &http.Server{
|
|
|
- Handler: promhttp.HandlerFor(reg, promhttp.HandlerOpts{}),
|
|
|
- Addr: fmt.Sprintf("0.0.0.0:%v",
|
|
|
- YamlConfig.LogPort),
|
|
|
+ log.Fatalln(err)
|
|
|
}
|
|
|
grpcServer := grpc.NewServer(
|
|
|
+ grpc.Creds(cred),
|
|
|
grpc.UnaryInterceptor(grpcMetrics.UnaryServerInterceptor()),
|
|
|
)
|
|
|
proto_grpc.RegisterSensitiveWordsServer(grpcServer, &server{})
|
|
|
grpcMetrics.InitializeMetrics(grpcServer)
|
|
|
- // Start your http server for prometheus.
|
|
|
- go func() {
|
|
|
- if err := httpServer.ListenAndServe(); err != nil {
|
|
|
- log.Fatal("Unable to start a http server.")
|
|
|
- }
|
|
|
- }()
|
|
|
- log.Println("server start:", YamlConfig.Port)
|
|
|
- if err := grpcServer.Serve(lis); err != nil {
|
|
|
- log.Fatalf("failed to serve: %v", err)
|
|
|
+
|
|
|
+ if err = http.ListenAndServeTLS(
|
|
|
+ fmt.Sprintf("%s", YamlConfig.Port),
|
|
|
+ YamlConfig.CertFile,
|
|
|
+ YamlConfig.KeyFile,
|
|
|
+ http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
|
+ if r.ProtoMajor == 2 && strings.HasPrefix(
|
|
|
+ r.Header.Get("Content-Type"), "application/grpc") {
|
|
|
+ grpcServer.ServeHTTP(w, r)
|
|
|
+ } else {
|
|
|
+ mux.ServeHTTP(w, r)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }),
|
|
|
+ );err != nil{
|
|
|
+ log.Fatalln(err)
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -139,7 +142,6 @@ func (s *server) Search(ctx context.Context, in *proto_grpc.Request) (*proto_grp
|
|
|
return &proto_grpc.ResultSensitiveWords{SensitiveWords: rada}, nil
|
|
|
}
|
|
|
|
|
|
-
|
|
|
type YAMLConfig struct {
|
|
|
MixdataMgoAddr string `yaml:"mixdataMgoAddr"`
|
|
|
UserName string `yaml:"userName"`
|
|
@@ -150,5 +152,6 @@ type YAMLConfig struct {
|
|
|
TaskLteId string `yaml:"taskLteId"`
|
|
|
IsAddTask int `yaml:"isAddTask"`
|
|
|
Port string `yaml:"port"`
|
|
|
- LogPort string `yaml:"log_port"`
|
|
|
+ CertFile string `yaml:"certFile"`
|
|
|
+ KeyFile string `yaml:"keyFile"`
|
|
|
}
|