一、企业常见网站服务
处理静态资源网站服务:
- httpd(apache): http://apache.org/
- IIS: https://www.iis.net/
- GWS: https://www.ghanawebsolutions.com/index.php
- Openresty:安全性 http://openresty.org/cn/
- Tengine:http://tengine.taobao.org/
- nginx:http://nginx.org *****
处理动态资源网站服务:
- PHP: http://php.net ****
- Tomcat: http://tomcat.apache.org *****
- Resin: http://caucho.com
二、nginx服务概述介绍
- 特点:
nginx服务并发处理静态资源能力将强,消耗系统资源较少 vs tomcat
功能:1 v 3
网站web服务功能
反向代理负载均衡功能
网站缓存服务功能
Nginx的官方介绍:http://nginx.org/en/
Nginx的参考资料:https://lnmp.org/nginx.html
三、nginx安装部署
一、利用yum方式进行安装
特点:对nginx主要应用基本功能
· 非官方源yum安装 yum install -y nginx 旧版本 默认配置/目录结构
· 官员源yum安装 更新yum源 – yum install -y nginx 新版本 默认配置/目录结构
二、编译安装软件方式
特点:对nginx想应用高级功能
-
解决nginx软件依赖问题
yum install -y openssl-devel pcre-devel
openssl:实现支持网站HTTPS访问功能
pcre: 是否兼容perl语言正则表达式 -
创建一个程序虚拟用户 (管理指定站点目录 管理进程信息)
useradd nginx -M -s /sbin/nologin
-
下载nginx程序源码包
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar xf nginx-1.16.1.tar.gz
cd nginx-1.16.1
-
进行软件编译安装过程 3步曲
编译配置过程
./configure --prefix=/application/nginx-1.16.1/ --sbin-path=/bin/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
--prefix=PATH set installation prefix
指定软件程序保存目录(不用必须存在)
--sbin-path=PATH set nginx binary pathname
指定nginx程序命令文件保存路径 /bin/
--modules-path=PATH set modules path
指定模块数据保存路径
--conf-path=PATH set nginx.conf pathname
指定配置文件保存路径
--user=USER set non-privileged user for worker processes
设置worker进程管理用户
--group=GROUP set non-privileged group for worker processes
设置worker进程管理用户组
--with-http_ssl_module enable ngx_http_ssl_module
支持HTTPs访问功能
--with-http_stub_status_module enable ngx_http_stub_status_module
nginx访问状态监听模块
缺失了:
--with-http_gzip_static_module
添加方式:
--prefix=/application/nginx-1.16.1/ --sbin-path=/bin/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
--with-http_gzip_static_module
- 编译过程 (翻译过程)
make
系统 识别 软件代码信息 c - 编译安装过程
make install
- 查看配置信息:
nginx -V
四、nginx服务命令参数
nginx — 直接利用命令启动服务程序
nginx -s stop — 利用命令停止nginx服务
nginx -s reload — 利用命令重载(平滑重启)nginx服务
nginx -V — 查看nginx服务配置参数信息
nginx -v — 查看nginx版本信息
nginx -t — 检查配置文件语法是否正确 == ansible-playbook --syntax-check
五、nginx服务目录结构
/etc/nginx | 保存nginx程序配置文件目录 |
---|---|
/etc/nginx/conf.d | 保存nginx网站主机配置文件 |
/var/log/nginx/ | 保存nginx程序错误访问日志文件 |
/usr/share/nginx/html | 保存nginx程序代码数据信息 站点目录 |
/usr/sbin/nginx | 保存nginx命令文件目录 nginx |
六、nginx服务配置文件
主配置文件: /etc/nginx/nginx.conf
user nginx; --- 定义worker进程管理用户,
worker进程是处理用户请求进程 干活员工
master进程负责服务运转 老板
worker_processes 1; --- 设置worker进程数量
worker进程数量 <= 2*CPU核心数量
error_log /var/log/nginx/error.log warn; --- 定义错误日志保存路径
pid /var/run/nginx.pid; --- 定义进程文件保存路径
events {
worker_connections 1024; --- 定义每个worker进程并发处理能力
worker进程数量*worker进程并发连接数=nginx程序并发连接数 < 系统打开文件数
系统打开文件数: ulimit -a
open files (-n) 1024
}
http {
include /etc/nginx/mime.types; --- 扩展加载文件信息
default_type application/octet-stream;--- ???
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' --- 定义访问日志文件格式信息
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; --- 定义访问日志文件保存路径
sendfile on; ???
keepalive_timeout 65; --- 定义TCP长连接超时时间
include /etc/nginx/conf.d/*.conf; --- 扩展架构主机配置文件
}
nginx配置文件结构(组成部分):
1)核心区域配置部分:开头前几行配置
2)事件区域配置部分:events { } 服务性能参数信息
3)协议区域配置部分:http { } 服务功能指令信息
4)主机区域配置部分:server { } 主机网站配置参数
5)location区域配置部分: ???
6)if区域配置部分: 判断区域 ???
扩展配置文件: /etc/nginx/conf.d/xxx.conf
worker_connections相当于一个员工能做多少事(有上限) x worker process(员工数)=nginx程序总并发数(子公司今天可处理的事情个数) < open files操作系统打开文件数(总公司(操作系统中有多个程序)的总并发数)?