常用的网站服务软件
处理动态资源的语言
- PHP
- Tomcat(java)
- python
nginx服务特点
主机名称和IP地址规划
服务 | 主机名 | eth0网卡IP | eth1网卡IP | 软件 |
---|---|---|---|---|
防火墙服务器 | firewalld | 10.0.0.81 | 172.16.1.81 | firewalld |
负载均衡服务器 | lb01 | 10.0.0.5 | 172.16.1.5 | nginx,keepalived |
负载均衡服务器 | lb02 | 10.0.0.6 | 172.16.1.6 | nginx,keepalived |
web服务器 | web01 | 10.0.0.7 | 172.16.1.7 | nginx |
web服务器 | web02 | 10.0.0.8 | 172.16.1.8 | nginx |
web服务器 | web03 | 10.0.0.9 | 172.16.1.9 | nginx |
存储服务器 | nfs01 | 10.0.0.31 | 172.16.1.31 | nfs |
备份服务器 | backup | 10.0.0.41 | 172.16.1.41 | rsync |
数据库服务器 | db01 | 10.0.0.51 | 172.16.1.51 | mysql,mariaDB |
批量管理服务器 | m01 | 10.0.0.61 | 172.16.1.61 | ansible |
跳板机服务器 | jumpserver | 10.0.0.71 | 172.16.1.71 | jumpserver |
监控服务器 | zabbix | 10.0.0.72 | 172.16.1.72 | zabbix |
缓存服务器 | 暂无 | 暂无 | 暂无 | 暂无 |
- 支持高并发,消耗内存资源少
- 具有多种功能,web服务,负载均衡,缓存
- 在多种系统平台都可以进行部署
- nginx实现网络通讯时使用的时异步网络IO模型 epoll模型(apache -- select模型)
nginx服务安装部署
yum安装
使用官方yum源进行安装(推荐)
- 安装的是最新版本
- 软件目录结构比较标准
非官方yum源进行安装
- 安装的不是最新版
- 目录结构会发生变化
官方yum源安装步骤
- 创建该文件后使用
yum install -y nginx
vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
- 启动
nginx
和设置开机启动
systemctl start nginx
systemctl enable nginx
编译安装
- 下载安装包,解压
wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar -xf nginx-1.16.0.tar.gz
- 进入目录,进行配置操作
#进入解压后的目录
cd nginx-1.16.0.tar.gz
#--help 可以查看参数
./configure --help
#配置参数后的命令
./configure --prefix=/opt/demo/nginx --add-module=/home/fastdfs-nginx-module/src --with-http_stub_status_module --with-http_ssl_module
参数说明
- --prefix : 用于指定nginx编译后的安装目录
- --add-module : 为添加的第三方模块,此次添加了fdfs的nginx模块
- --with..._module : 表示启用的nginx模块,如此处启用了http_ssl_module模块
可能出现的错误
./configure: error: the HTTP rewrite module requires the PCRE library.
- 解决方法:
yum install -y pcre-devel
SSL modules require the OpenSSL library.
- 解决方法:
yum install -y openssl-devel
查看软件的目录结构
[root@web01 ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.16.1
/usr/share/doc/nginx-1.16.1/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
总结
- /etc/nginx : 配置文件
- /var/log/nginx : 日志文件
- /usr/bin/nginx : 命令文件
- /usr/share/nginx/html : 站点目录
nginx日志文件定时切割处理
- 方法一 利用脚本实现切割
#!/bin/bash
#重命名文件
mv /var/log/nginx/access.log /var/log/nginx/access_$(date +%F).log
#重启nginx
systemctl restart nginx
- 方法二 利用专用文件切割程序--logrotate
vi /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
#定义默认日志切割的周期
weekly
# keep 4 weeks worth of backlogs
#定义只保留几个切割后的文件
rotate 4
# create new (empty) log files after rotating old ones
#创建出一个相同的源文件
create
# use date as a suffix of the rotated file
#定义角标(扩展名称信息)
dateext
# uncomment this if you want your log files compressed
#是否对切割后的文件进行压缩处理
#compress
# RPM packages drop log rotation information into this directory
#加载包含/etc/logrotate.d/目录中文件配置
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
#单独对某个文件进行切割配置
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
nginx服务配置文件
- 主配置文件 :
/etc/nginx/nginx.conf
#定义worker进程管理的用户
user nginx;
#定义有几个worker进程
worker_processes 1;
#定义错误日志路径信息
error_log /var/log/nginx/error.log warn;
#定义pid文件路径信息
pid /var/run/nginx.pid;
#一个worker进程可以同时接收1024访问请求
events {
worker_connections 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;
#tcp_nopush on;
#超时时间
keepalive_timeout 65;
#gzip on;
#加载名称匹配的配置文件
include /etc/nginx/conf.d/*.conf;
}
nginx的进程
- master process : 主进程 管理服务是否能够正常运行
- worker process : 工作进程 处理用户的访问请求
[root@web03 ~]# ps -ef|grep nginx
root 6486 1 0 19:05 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 6487 6486 0 19:05 ? 00:00:00 nginx: worker process
root 7094 6353 0 19:25 pts/0 00:00:00 grep --color=auto nginx
- 扩展配置(虚拟主机配置文件) :
/etc/nginx/conf.d/default.conf
server {
#监听端口
listen 80;
#网站域名
server_name localhost;
location / {
#站点目录位置
root /usr/share/nginx/html;
#首页文件
index index.html index.htm;
}
#错误页面信息
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
最后一次更新于2020-01-10 21:29
0 条评论