WEB搭建及优化
本文主要是针对web服务的,生产环境会使用的一些软件,只是简单陈述,如果有什么不正确的地方,请指教,谢谢!
Web搭建的软件:httpd,nginx,tomcat
代理软件:squid,varnish
数据库软件:mariadb,redis,mencache
验证浏览方式:elinks -dump, curl,firefox 等
查看web网络监听: netstat/ss -anptu | grep httpd/80 注:建议使用ss,速度快
URL(Uniform Resource Locator)组成:http://服务器地址『:端口号』/目录/文件名
检测web工具:ab 格式:ab -c 并发个数 -n 请求次数 http://ip/ 注:需安装httpd-tools
LNMP 注:LAMP A:apache
L:linux
N:nginx
M:mariadb、mariadb-server、mariadb-devel
P:php、php-fpm、php-mysql
===========================================================================
- HTTP
软件包:httpd (apache www.apache.org)
安装方式:yum
服务:httpd
传输协议及端口:TCP 80 注:https TCP 443 软件包:mod_ssl
配置文件:
主配置文件:/etc/httpd/conf/httpd.conf 注:一般不修改
其他:/etc/httpd/conf.d/*.conf
默认首页:index.html
默认根目录:/var/www/html
启动服务:systemctl restart httpd systemctl enable httpd
配置文件内容:
Listen 端口号 注:添加新的Web端口 semanage port -a -t http_port_t -p tcp 端口号
<VirtualHost *:端口号> 注:可以基于端口的虚拟主机,还有基于ip虚拟主机
ServerName 网站的FQDN 注:可以基于域名的虚拟主机,使用最多
DocumentRoot 网站的网页根目录
WSGIScriptAlias / /网站的网页网页 注:需要mod_wsgi模块软件包
</VirtualHost>
<Directory "目录路径">
Require all denied ??????????????????????????????? ?//上层目录拒绝任何访问
Require all granted //目录允许任何访问
Require ip IP或网段地址 .. .. //目录允许少数客户机
</Directory>
==================================================================================
- NGINX (engine x)
软件包:nginx (http://nginx.org) 注:依赖包pcre-devel openssl-devel
安装方式:源码安装 注:依赖包gcc
传输协议及端口:TCP 80 注:开启nginx时,需要关闭httpd-- killall httpd
配置文件:/usr/local/nginx/conf/nginx.conf
默认首页:index.html
默认根目录:/usr/local/nginx/html/
启动服务:
/usr/local/nginx/sbin/nginx //启动服务
/usr/local/nginx/sbin/nginx -s stop //关闭服务
/usr/local/nginx/sbin/nginx -s reload //重新加载配置文件 相当于重启
配置文件内容:
server{
listen 80; //端口
server name localhost; //域名
location /{
root html; //指定网站根目录
index index.html index.htm; //默认首页
rewrite /a.html /b.html; //访问a.html重定向到b.html
}
}
Nginx反向代理(很重要):
http {
upstream webserver { //配置upstream服务器集群池属性
server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10; //权重1,失败次数1,超时10
server 192.168.2.200 weight=1 max_fails=2 fail_timeout=10;
}
server {
listen 80;
server_name www.aa.com;
location / {
proxy_pass http://webserver; //实现反向代理功能
}
}
}
Nginx优化:
worker-processes 1; //与cpu核心数一致 查看cpu用lscpu
events {
worker_connection 65535; //每个worker最大并发连接数
}
http {
server_tokens off; //不显示nginx版本号信息
client_header_buffer_size 1k; //默认请求包头信息的缓存
large_client_header_buffers 4 4k; //大请求包头部信息的缓存个数与容量
gzip on;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/plain
}
Server {.................省略}
Location ~* .(jpg|jpeg|gif|png|css|js|ico|xml)$(
Expires 30d; //定义客户端缓存时间为30天
)
修改Linux操作系统最大打开文件数
#vim /etc/security/limits.conf (永久配置)
- soft nofile 100000
- hard nofile 100000
linux系统上需要设置的(临时设置)
ulimit –Hn 100000
ulimit –Sn 100000
====================================================================
3.TOMCAT
软件包:apache-tomcat-8.0.30.tar.gz 注:依赖包JDK java-1.8.0-openjdk
安装方式:解压后拷贝到/usr/local/tomcat/ 则可以使用
传输协议及端口:TCP 8080 https 8443
配置文件:/usr/local/tomcat/conf/server.xml
页面目录:/usr/local/tomcat/webapps/ROOT/
默认首页:index.html
启动服务:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
配置文件内容:
<Host name=www.aa.com appBase="aa" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base" />
</Host>
====================================================================
- SQUID
软件包:squid
安装方式:yum
传输协议和端口:TCP 80
配置文件:/etc/squid/squid.conf
启动服务:
systemctl start squid;systemctl enable squid
配置文件内容:
http_port 80 vhost //设置反向代理
visible_hostname svr5.tarena.com //设置主机名,默认没有该语句
cache_peer 192.168.2.100 parent 80 0 originserver //定义后端真实服务器信息
cache_dir ufs /var/spool/squid 200 16 256 //硬盘缓存,缓存容量为200M,自动创建16个一级子目录和256个二级子目录
http_access allow all //允许本机所有主机使用代理服务器
==========================================================
- VARNISH
软件包:varnish-3.0.6.tar.gz 注:依赖包read-devel pcre-devel
安装方式:源码安装
传输协议和端口:TCP 80
配置文件:
/etc/sysconfig/varnish
/etc/varnish/default.vcl
启动服务: service varnish start
配置文件内容:
vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80 //默认端口
89行:VARNISH_STORAGE_SIZE=64M //定义缓存大小
92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" //基于内存方式缓存
linux系统处理过程:
mkdir /etc/varnish
cp /usr/local/varnish/etc/default.vcl /etc/varnish/
uuidgen > /etc/varnish/secret
vim /etc/varnish/default.vcl
配置内容
backend default {
.host = "192.168.2.100";
.port = "80";
}
==========================================================
原文地址:http://blog.51cto.com/13667098/2090471