web服务器软件
1、apache
网络模型
select
poll
epoll
2、Nginx
官网:https://nginx.org/
软件:https://nginx.org/download/
部署Nginx
1、yum安装 [root@web01 ~]# vim /etc/yum.repos.d/nginx.repo [root@web01 ~]# yum install nginx -y [root@web01 ~]# systemctl stop httpd [root@web01 ~]# systemctl start nginx 2、二进制安装 3、编译安装 [root@web01 ~]# wget https://nginx.org/download/nginx-1.20.2.tar.gz [root@web01 ~]# tar -xf nginx-1.20.2.tar.gz [root@web01 nginx-1.20.2]# ./configure [root@web01 nginx-1.20.2]# make [root@web01 nginx-1.20.2]# make install
增加Nginx模块
增加模块必须重新编译。 [root@web01 ~]# tar -xf nginx-1.20.2.tar.gz [root@web01 ~]# cd nginx-1.20.2 [root@web01 nginx-1.20.2]#./configure --with-http_ssl_module [root@web01 nginx-1.20.2]#make [root@web01 nginx-1.20.2]#make install
Nginx的命令
1、-v : 打印版本号 [root@web01 ~]# nginx -v nginx version: nginx/1.20.2 2、-V : 打印版本号和配置项 [root@web01 ~]# nginx -V nginx version: nginx/1.20.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx 3、-t : 检查配置文件 [root@web01 ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 4、-T : 测试配置文件并启动 5、-q :打印错误日志 6、-s : 操作进程 stop :停止 quit :退出 reopen :重启 reload :重载 7、-p : 指定nginx的工作目录 8、-e : 指定错误日志路径 9、-c : 指定配置文件的路径 10、-g : 设置一个全局的Nginx配置项 [root@web01 ~]# nginx -g 'daemon off;'
Nginx配置文件
全局配置和模块配置 1、全局配置 1、user : 指定Nginx的启动用户 2、worker_processes : 定义Nginx的worker进程数 auto === CPU数量 3、error_log : 错误日志路径 4、pid : pid的存放文件路径 5、events : 模块配置 5.1、worker_connections :每一个worker进程最多同时接入多少个请求 5.2、use : 指定Nginx的网络模型 6、http : web服务的模块 6.1、include : 加载外部的配置项 6.2、default_type : 如果找不到文件的类型,则按照指定默认类型处理 6.3、log_format : 定义日志格式 log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"service":"nginxTest",' '"trace":"$upstream_http_ctx_transaction_id",' '"log":"log",' '"clientip":"$remote_addr",' '"remote_user":"$remote_user",' '"request":"$request",' '"http_user_agent":"$http_user_agent",' '"size":$body_bytes_sent,' '"responsetime":$request_time,' '"upstreamtime":"$upstream_response_time",' '"upstreamhost":"$upstream_addr",' '"http_host":"$host",' '"url":"$uri",' '"domain":"$host",' '"xff":"$http_x_forwarded_for",' '"referer":"$http_referer",' '"status":"$status"}'; access_log /var/log/nginx/access.log json ; 6.4、sendfile : 高效读取文件 6.5、keepalive_timeout : 长连接保持连接的 HTTP 1.0 短链接 HTTP 1.1 长连接 6.6、server : 网址模块 6.6.1、listen : 监听的端口 6.6.2、server_name : 定义域名 6.6.3、location : 访问路径 6.6.3.1、root : 指定网址路径 6.6.3.2、index : 指定网址的索引文件