07 | 自己动手,搭建HTTP实验环境
07 | 自己动手,搭建HTTP实验环境
讲述:Chrono
时长09:36大小13.19M
“破冰篇”回顾
软件介绍
安装过程
测试验证
小结
课下作业
赞 35
提建议
精选留言(120)
- cylim2019-06-12在Mac上, 拷贝项目(需要Git) 1. git clone https://github.com/chronolaw/http_study 安装OpenResty (推荐使用Homebrew) 1. brew tap openresty/brew 2. brew install openresty 运行项目 1. cd http_study/www/ 2. openresty -p `pwd` -c conf/nginx.conf 停止项目 1. openresty -s quit -p `pwd` -c conf/nginx.conf展开
作者回复: 好同学!!赞!
共 12 条评论149 - 前端西瓜哥2019-06-28对 cylim 的 mac 上运行 openresty 的教程进行补充: 按照 cylim 的做法,我遇到了访问 localhost 时,网页报 403 错误的情况,原因是没有 html/index.html 文件的访问权限。我研究并找到了解决方案: 先 ls -la html,查看文件的权限,得到 user 和 group,我这里是 fstar 和 staff。 然后在 conf/nginx.conf 文件的顶部添加 user fstar staff; 然后再启动 openresty 就可以正常访问了。展开
作者回复: 感谢同学的热心补充。
共 4 条评论23 - 古夜2019-06-12我打赌很多人抓不到包,找不到本地回环地址,不知道最新版的wireshark是否修复了这个问题,如果出现以上问题,记得卸载重装wireshark,不要勾选它自带的ncap应该是这个名字,然后自己去单独下一个这个软件
作者回复: 有问题欢迎提出来,我机器上的Wireshark装的比较早,具体的步骤记不太清了,应该是很简单的。
共 7 条评论22 - 名曰蓝兮2019-06-19centos上的安装步骤,有错误请指出 wireshark: 1. yum install wireshark yum install wireshark-gnome 2. 如果不是root用户,启动后没有权限,做如下操作 2.1 添加当前用户到wireshark组,我的用户叫'zp': usermod -a -G wireshark zp 2.2 然后给dumpcap读网卡的权限: setcap cap_net_raw,cap_net_admin+eip /usr/sbin/dumpcap 完成后重启机器。 telnet: yum install telnet OpenResty: 官网有说明,按照说明一步步来 1. 添加OpenResty仓库: sudo yum install yum-utils sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo 2. 安装OpenResty: sudo yum install openresty sudo yum install openresty-resty 3. 在~目录下创建conf和logs文件夹: mkdir ~/work cd ~/work mkdir logs/ conf/ 4. 在conf文件夹下创建nginx.conf文件,内容如下: worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { server { listen 8080; location / { default_type text/html; content_by_lua_block { ngx.say("<p>hello, world</p>") } } } } 5. 添加OpenResty环境变量,注意冒号,别丢了: PATH=/usr/local/openresty/nginx/sbin:$PATH export PATH 6. 在'~/work'目录下启动OpenResty: nginx -p `pwd`/ -c conf/nginx.conf 7. 验证安装: curl http://localhost:8080 输出: <p>hello, world</p>展开
作者回复: 写的很详细,赞!
17 - geek桃2021-03-03送给后来的同学: 如果你按照步骤操作之后出现:start启动完成后,cmd窗口一闪而过,点击list启动时显示“没有运行的任务匹配制定标准”,请按任意键继续,当随便输入数据时,cmd窗口又没了;去查找www/logs/error.log,如果日志报错为“10013: An attempt was made to access a socket in a way forbidden by its access permissions”,说明你的80端口被占用了,按照下面步骤操作。 1.按键盘win+r 打开运行界面,输入cmd,确定,打开管理员界面 2.输入 netstat -aon | findstr :80 (有一条0.0.0.0的数据,记住这条数据最后的数字;我的是5884) 3.输入 tasklist|findstr "5884" (根据上一步查到的数字,找到5884端口对应的服务名称,我的是snv) 4.在控制台关闭服务 5.重新启动start.bat,成功!展开
作者回复: 非常好的经验分享,鼓励。 Windows环境比较复杂,容易出各种错误,如果不好解决可以尝试用虚拟机或者docker。
共 5 条评论15 - 珈蓝白塔2020-04-13Mac 开发环境的搭建参考《答疑篇41》,项目中已经有前辈写好的 shell 脚本,终端里直接运行就可以,不需要自己输入 openresty 命令啦;服务器启动以后访问 localhost 环境遇到了 403 问题,显示不出来 HTML,可参照留言区中提出的,在 conf/nginx.conf 文件的顶部添加 user xxxx staff; 来解决,这个 xxxx 是自己的 mac 账户名;Wireshark(v3.2.3) 中选择环回地址时,选择 lockback:lo0 就可以啦,过滤器是和文中一样的,已成功搭建环境(2020年4月13日)展开
作者回复: 欢迎经验分享,让同学都少走弯路。
共 4 条评论14 - YUANWOW2019-07-02我一开始nginx一直起不来 后面看了error.log 发现本机443端口被占用了 netstat -ano | findstr "443" 看到一个 0.0.0.0:443 最后一列是进程的PID 查找到是vmware-hostd这个进程 后面谷歌搜索了下 vmware的虚拟机共享会默认占用443端口 所以安装了vmware的把虚拟机共享关闭就好了展开
作者回复: 欢迎经验分享。
共 4 条评论11 - pyhhou2019-06-12想请问下在 MacOs 或者是 Linux 上怎么搭建?(不是太想弄 Windows 虚拟机)
作者回复: 需要用brew或者yum安装OpenResty,然后看一下nginx.conf,里面的注释有说明。
共 2 条评论11 - 郁方林2019-06-12start启动完成后,cmd窗口一闪而过,当我点击list启动时显示“没有运行的任务匹配制定标准”,请按任意键继续,当我随便输入数据时,cmd窗口又没了
作者回复: 看一下www/logs/error.log,是否有端口被占用了。
共 2 条评论10 - Leon📷2019-06-12破冰篇最后一篇,是马上开展破冰行动,抓捕林耀东了吗
作者回复: 写这个的时候电视剧还没出呢,完全的碰巧,笑。
10 - Geek_d4dee72019-06-12老师 最近我维护的一个网站打开速度非常慢 服务器CPU 负载0.5到0.8之间 有十多台web 服务器 redis db 负载都正常 只是nginx 的链接数在出问题的时间点有上升 我目前不知道从哪下手排查这个问题 是用php symfony 开发的 能否给点思路 万分感谢
作者回复: 在日志里加上$upstream_connect_time、$upstream_header_time、$upstream_response_time这几个变量,看看反向代理耗时在哪里。 另外也可以用systemtap,抓火焰图看看。
7 - 兔嘟嘟2021-07-16windows上装的最新的3.4.7版,没有npcap,但是有一个Adapter for loopback traffic,用起来效果一样,就是抓到的Source是::1,猜测是这台电脑比较新,用上了IPv6的localhost
作者回复: 这篇文章已经是两年前了,随着软件的升级,可能有的选项已经过时了,欢迎同学们随时更新。
共 2 条评论6 - Amark2019-06-12老师,上面过程怎么没有用到telnet
作者回复: 后面会用,Telnet需要手动输入http请求,比较麻烦,只有在比较特殊的时候才会用。
6 - Leon📷2019-06-12老师可以把环境打包成容器,我们进容器直接嗨,隔离更彻底
作者回复: 考虑大多数同学都用的是Windows,所以暂时只能这样,手动操作也能加深一下印象吧。
5 - Cris2019-07-11在浏览器和服务器之间还存在“中间人”,这些中间人也都遵循http协议,我想问下,这些中间人是不是都工作在应用层?
作者回复: 是的,都是用http协议,当然就是在应用层。
4 - QQ怪2019-06-12为啥有时候批处理stop不掉openresty?
作者回复: 可能是多次start,stop就失效了,只能手动在任务管理器里关闭。
4 - 不是云不飘2019-06-17建议还是能有win和Mac,逼近做开发的Mac不再少数。这些东西之前只有客户对接问题才会看到运维大哥在哪捣腾那时候看的一脸们逼,难得如此细致的了解。
作者回复: 有同学已经写的很详细了,看看后续是否再专门详细写一下Linux和mac的搭建吧。
3 - 因缺思厅2019-06-12这次环境搭建很顺利呀
作者回复: nice
3 - 6欢2019-06-12建议环境搭建都在linux操作,哈哈
作者回复: 我也是这么想,可惜用Windows的同学还是不少。
3 - sdjdd2019-06-12正在学温铭老师的《OpenResty从入门到实战》,正好用上。
作者回复: 搭配起来学习,效果更好。
3