You should use ehlssink component for that. It receives data and creates chunks in the selected place. After that, you can use any HTTP server (like nginx) to provide HTTP access to your HLS chunks.
Here is an example of a pipeline receiving data from an IP stream, remultiplexing the stream and creating HLS output in nginx default directory (the channel name is "test1"):
gst-launch-1.0 enwsrc uri="udp://18.104.22.168:1234" mcast-iface-ip="enp0s3" ! empgpdmx name="demux" ! 'video/mpeg' ! empegmux name=mux ! ehlssink id="test1" output-directory="/usr/share/nginx/html" demux. ! 'audio/mpeg' ! mux