swoole 建立httpserver 服务[通俗易懂]

swoole 建立httpserver 服务

大家好,又见面了,我是全栈君。

1.上代码:http_server.php文件

<?php
/**
 *User: lxw
 *Date: 2020-01-16
 */

/*$http = new Swoole\Http\Server("127.0.0.1", 9501);

$http->on('request', function ($request, $response) {
    var_dump($request->get, $request->post);
    $response->header("Content-Type", "text/html; charset=utf-8");
    $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});

$http->start();*/

$http = new swoole_http_server('0.0.0.0', 8811);

$http->on('request', function ($request, $response) {
//    print_r($request->get);
    $response->end("ss".json_encode($request->get));
//    $response->end("<h1> http server</h1>>");
    //end :发送html响应体,并结束请求处理,  end操作后将向客户端浏览器发送html内容
    //end 只能调用一次,如果需要向客户端发送多次数据,请使用write
});
//开启服务
$http->start();

2.服务端:启动服务

swoole 建立httpserver 服务[通俗易懂]

3.客户端:浏览器,谷歌浏览器带上子域名前缀www

http://www.httpserver.com:8811/?m=222

swoole 建立httpserver 服务[通俗易懂]

4.补充httpserver.com 在NGINX中配置

server
    {
        listen 8811;
        #listen [::]:80 default_server ipv6only=on;
        server_name httpserver.com  www.httpserver.com;
        index index.html index.htm index.php;
        root  /home/wwwroot/default/newproject/swoolechat/swoole-src/examples/server;

        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;

        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location / {
            if (!-e $request_filename){
                rewrite ^/(.*)$ /index.php?s=/$1 last;
            }
        }
                location ~ /\.
        {
          deny all;
        }

        access_log  /home/wwwlogs/access.log;
    }

5.如果出现拒绝访问:考虑下防火墙

如果要修改防火墙配置,如增加防火墙端口3306

vi /etc/sysconfig/iptables 

增加规则

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8811 -j ACCEPT

或,参数顺序前后没区别

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8811 -j ACCEPT

swoole 建立httpserver 服务[通俗易懂]

重新启动iptables ,使其生效

swoole 建立httpserver 服务[通俗易懂]

======================================================

额外补充:

nignx 与swoole hhtp-server 不能同时开启,两者只能开启其一;两者不能共存.

swoole 建立httpserver 服务[通俗易懂]swoole 建立httpserver 服务[通俗易懂]

两者切换,ctrl+c 取消swoole-http-server 服务器,service nginx restart 重启NGINX 服务器;

swoole 建立httpserver 服务[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111941.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • L2-014列车调度(最长上升子序列LIS)[通俗易懂]

    L2-014列车调度(最长上升子序列LIS)[通俗易懂]原题链接最长上升子序列火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10​5​​ ),下一行给出从1到N的整数序号的一个重排列。数字间

    2022年8月8日
    5
  • 常用Eclipse快捷方式

    Ctrl+1快速修复Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特

    2021年12月26日
    44
  • java实现简单二叉树「建议收藏」

    java实现简单二叉树「建议收藏」二叉树全面讲解

    2022年5月31日
    33
  • MyBatis缓存机制详解

    MyBatis缓存机制详解MyBatis缓存机制详解1.MyBatis缓存1.1MyBatis缓存概述1.2MyBatis一二级缓存区别2.MyBatis一级缓存2.1MyBatis一级缓存概述2.2MyBatis一级缓存配置2.3MyBatis一级缓存原理分析2.4MyBatis一级缓存总结3.MyBatis二级缓存3.1MyBatis二级缓存概述3.2MyBatis二级缓存配置3.3MyBatis二级缓存原理分析3.4MyBatis二级缓存总结4.MyBatis缓存测试5.参考文档1.MyBat

    2022年5月11日
    33
  • java常量池和字符串常量池_常量池中的字符串是对象吗

    java常量池和字符串常量池_常量池中的字符串是对象吗 原文链接:http://tangxman.github.io/2015/07/27/the-difference-of-java-string-pool/                 在java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上说法都有问题,笔者尝试着…

    2022年7月28日
    13
  • RPC协议与Http协议区别[通俗易懂]

    RPC协议与Http协议区别[通俗易懂]RPC调用RPC是远程过程调用(RemoteProcedureCall)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。本地过程调用:如果需要完成业务逻辑,则直接去调用本地的方法即可.远程过程调用:我想完成一个业务的调用,但是该功能我没有办法直接调用,需要通过第三方帮助我完成业务规则.具体用法:RPC不关注具体的实现规则,用户也不需要了解具体的协议.谁调用谁

    2022年5月19日
    246

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号