Nginx рд╡реНрдпрдВрдЬрдиреЛрдВ: PostgreSQL рд╕реЗ рд╡реЗрдмрд╕реНрдХреИрдЯ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реВрдЪрдирд╛рдПрдВ

PostgreSQL рд╕реЗ рд╡реЗрдмрд╕реНрдХреИрдЯ рддрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реВрдЪрдирд╛рдПрдВ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ nginx рдФрд░ рдЙрд╕рдХреЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ , рдкреБрд╢-рд╕реНрдЯреНрд░реАрдо , рд╕реЗрдЯ-рдорд┐рд╕ рдкреНрд▓рдЧ рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдВрдХ рджрд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ рдореВрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдЖрдк рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред)

Websocket рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ nginx рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдирд╛рдПрдВ

location =/websocket { push_stream_subscriber websocket; #    websocket push_stream_channels_path $arg_id; #   websocket    id push_stream_websocket_allow_publish on; #   -    push_stream_client_subscribed_request /subscribe; #        push_stream_client_unsubscribed_request /unsubscribe; #        push_stream_client_publish_request /publish; #         websocket } 

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдо PostgreSQL рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

 location =/subscribe { internal; postgres_pass ngx; #    PostgreSQL set_quote_json_str $channel $arg_id; #    postgres_query "listen $channel"; #     } 

рдЬрдм рдХрд┐рд╕реА рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╡реЗрдмрд╕реНрдХреЗрдЯ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо PostgreSQL рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ

 location =/unsubscribe { internal; postgres_pass ngx; #    PostgreSQL set_quote_json_str $channel $arg_id; #    postgres_query "unlisten $channel"; #     } 

рдЬрдм рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХ рд╡реЗрдмрд╕реИрдЯ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВ

 location =/publish { internal; postgres_pass ngx; #    PostgreSQL postgres_query "select now()"; #    PostgreSQL      websocket } 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреБрдЫ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ

 location =/publisher { allow 127.0.0.1/16; #     deny all; #     push_stream_channel_info_on_publish off; #         push_stream_publisher; #   push_stream_channels_path $arg_id; #   websocket    id } 

Source: https://habr.com/ru/post/hi456672/


All Articles