Web服务与应用
Apache
简介
Apache是一个高稳定,商业级别开源的Web服务器
下载镜像
DockerHub官方提供Apache镜像不带PHP环境,也就是不是动态网页页面,只能生成静态的。
在如下连接中使用含-apache标签的镜像如7.0.7-apache
https://registry.hub.docker.com/_/php/
使用Dockfile构建自定义镜像
编写Dockerfile文件内容如下
镜像来自httpd:2.4
cp宿主机当前目录public-html到容器htdocs目录。

创建public-html目录,并在此目录下创建index.html文件内容如下,中文需要加一行编码
<meta http-equiv="Content-Type"content="text/html;charset=utf-8">

构建自定义镜像,注意有个点,代表Dockerfile文件在当前目录下
$docker build -t apache2-image .
通过自定义镜像apache2-image运行容器apache2.0
[root@localhost ~]# docker run -d --name apache2.0 -p 80:80 apache2-image
访问浏览器查看效果
或使用curl命令查看
映射宿主机目录到容器
[root@localhost ~]# docker run -it --rm --name my-apache-app -p 80:80 \
-v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
Nginx
简介
开源反向代理服务器,也可以作为负载均衡,HTTP缓存或web服务器。
支持HTTP、HTTPS、SMTP、POP3、IMAP等协议。
支持多种操作系统。
特性:
- 热部署:在不中断服务的前提下,直接升级版本、修改配置文件、更换日志文件。
- 高并发连接:支持超过100K的并发,上限取决于机器内存。
- 低内存消耗:就是不耗内存
- 响应快:就是响应快
- 高可靠性:就是非常可靠
下载镜像
[root@localhost ~]# docker run -d -p 80:80 --name webserver_nginx nginx
注意一下之前运行的Apache容器是否占用了80端口,如果没有,那么打开浏览器就能访问到nginx欢迎页面
自定义web页面
新建一个index.html文件,内容如下

然后使用docker run挂载到容器查看显示,这里书有个错误,前面说容器卷那章宿主机挂载到容器里要写绝对路径,而且最好不要直接挂载文件会出错,书里是直接挂载的文件,也没有写绝对路径。P102页
[root@localhost nginx]# docker run --name webserver_nginx_tz -p 80:80 -v /root/nginx:/usr/share/nginx/html:ro -d nginx
效果如下

参数优化
常见的Nginx服务器内核优化参数如下
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter =1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296 net.ipv4.tcp_max_tw_buckets = 6000 #timewait的数量
net.ipv4.tcp_sack = 1 #有选择的应答
net.ipv4.tcp_window_scaling = 1 #设置tcp/ip会话滑动窗口是否可变,1可变,0不可变。开启使滑动窗口大小增加数个数量级,提高数据传输能力
net.ipv4.tcp_rmem = 4096873804194304 #tcp接收缓冲区
net.ipv4.tcp_wmem = 4096163844194304 #tcp发送缓冲区
net.core.wmem_default = 8388608#发送套接字缓冲区大小的缺省值(字节单位)
net.core.rmem_default = 8388608 #接收套接字缓冲区大小的缺省值
net.core.rmem_max = 16777216 #接收套接字缓冲区大小的最大值
net.core.wmem_max = 16777216 #发送套接字缓冲区大小的最大值
net.core.netdev_max_backlog = 262144 #允许送到队列的数据包最大数目
net.core.somaxconn = 262144#web应用中listen函数的backlog(积压)
net.ipv4.tcp_max_orphans = 3276800 #最多有多少个TCP套接字不被关联到任何一个用户的句柄上
net.ipv4.tcp_max_syn_backlog = 262144 #记录那些尚未收到客户端确认信息的连接请求最大值,表示SYN队列的长度,可以容纳更多等待连接的网络连接数
net.ipv4.tcp_timestamps = 0 #时间戳关闭
net.ipv4.tcp_synack_retries = 1 #这个设置决定了内核放弃连接之前发送SYN+ACK包的数量
net.ipv4.tcp_syn_retries = 1#内核放弃连接之前发送SYN包的数量
net.ipv4.tcp_tw_recycle = 1 #timewait快速回收
net.ipv4.tcp_tw_reuse = 1 #timewait 用于新的连接
net.ipv4.tcp_mem =1835008 2752512 3670016 #out of socket memory
net.ipv4.tcp_fin_timeout = 15 #保持在FIN-WAIT-2状态的时间,对端出错永不关闭甚至当机缺省值是60s
net.ipv4.tcp_keepalive_time = 30#keepalived 发送消息的频度
net.ipv4.ip_local_port_range = 102465000 #端口范围
转载于:
https://www.cnblogs.com/DemonAngel/p/5511150.html
写的十分详细,赞
Jetty
简介
- 开源servlet容器
- java语言编写
- 启动更快,性能更优
下载镜像
$docker run -d jetty
$docker run -d -p 80:8080 jetty
LAMP
简介
全称:Linux-Apache-MySQL-PHP
其中PHP可替换为Nginx或Perl,Python
具有通用、跨平台、高性能、低价格、轻量、快速开发等优势
下载镜像
使用linode/lamp镜像
$docker run -p 80:80 -it linode/lamp /bin/bash
使用tutum/lamp镜像
$docker run -d -p 80:80 -p 3306:3306 tutum/lamp
Web服务与应用的更多相关文章
- 关于如何提高Web服务端并发效率的异步编程技术
最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...
- 基于IIS构建Pyathon Web服务
本文简单叙述了在Windows下,如何利用IIS构建Python Web服务. 其主要步骤如下: 1.在IIS下构建一个站点,如图: 2.配置Python文件的处理程序,如图: 3.最后,在对应站点根 ...
- Web服务
Web服务的相关信息 Apache服务器是web服务的重要应用 在这也是讲的apache 这里需要安装一个http服务软件才行! Apache的根文档在/var/www/html 主配置文件 /e ...
- Python flask 基于 Flask 提供 RESTful Web 服务
转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转 ...
- 使用 ServiceStack 构建跨平台 Web 服务
本文主要来自MSDN杂志<Building Cross-Platform Web Services with ServiceStack>,Windows Communication Fou ...
- webServices与Web服务
本篇的内容在MSND中标注已是一项旧技术,而取而代之的是WCF, 那么我也放弃吧!但是这个属于Web服务的范畴,而WCF本质上也是一个Web服务来的,所以对于基础的东西还是不变的.那么这次就着重看看这 ...
- J2EE基础之Web服务简介
J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...
- 大规模web 服务开发技术
<大规模web 服务开发技术> 是一本讲解大型Web 应用的入门级书籍,能够让我们接触到大应用的知识点. 目录如下: 第1章 大规模Web服务的开发定位——掌握整体第2章 大规模数据处 ...
- 计划任务,机器码与注册码,Web服务
01.计划任务的客户端配置 TScheduleTask 辅助结构内容: TScheduleRecord<ScheduleTask.pas> TScheduleRecord.Schedule ...
- 尝试利用CentOS环境安装LiteSpeed WEB服务环境的过程
对于普通的网站搭建的环境虚拟主机就足够使用,不过近期公司的网站需要上线VPS主机,于是采用到LNMP(http://lnmp.org/)一键包安装的,运行还是比较好的,这不最近我也开始尝试接触VPS方 ...
随机推荐
- 作业day2
问题一: Java类中只能有一个公有类吗?用Eclipse检测以下程序是否正确.是否在接口中同样适用. 因为公共类名必须和这个java源程序文件名相同,所以只能有一个公共类,相应的,main方法作为程 ...
- 曼孚科技:AI算法领域常用的39个术语(下)
算法是人工智能(AI)核心领域之一. 本文整理了算法领域常用的39个术语,希望可以帮助大家更好地理解这门学科. 本文为下半部分,上半部分见本账号上一篇文章. 19.迁移学习(Transfer Lear ...
- NC反弹shell的几种方法
假如ubuntu.CentOS为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.CentOS的shell反弹到kali上 正向 ...
- Agri-Net POJ - 1258 prim
#include<iostream> #include<cstdio> #include<cstring> using namespace std; ; #defi ...
- install multiple versions of CUDA
https://www.pugetsystems.com/labs/hpc/How-To-Install-CUDA-10-together-with-9-2-on-Ubuntu-18-04-with- ...
- Query的选择器
Query的选择器 一. 基本选择器 1. ID选择器 ID选择器#id就是利用DOM元素的id属性值来筛选匹配的元素,并以iQuery包装集的形式返回给对象. ...
- 【基础问题】String 类型为什么是final类型
关于为什么此类问题,都能列出12345...种种原因 已创建具体的值不可修改,故本身就是线程安全的,放到多线程中也不会担心被修改,支持在多线程中共享自身 . 因为字符串是不可变的,所以在它创建的时候H ...
- TCL常用命令
1.删除文件 file delete A file delete -force A 2.建立文件夹 file mkdir A file mkdir A/A 3.判断文件夹是否存在 file exist ...
- python之爬虫(爬取.ts文件并将其合并为.MP4文件——以及一些异常的注意事项)
//20200115 最近在看“咱们裸熊——we bears”第一季和第三季都看完了,单单就第二季死活找不到,只有腾讯有资源,但是要vip……而且还是国语版……所以就瞄上了一个视频网站——可以在线观看 ...
- 牛客CSP-S提高组赛前集训营3 赛后总结
货物收集 二分答案.复杂度\(O(n\log n)\). 货物分组 用费用提前计算的思想,考虑用一个新的箱子来装货物会发生什么. 显然费用会加上后面的所有货物的总重. \(60\)分的\(O(n^2) ...