Nginx企业级的应用
Nginx是一个web应用服务器。
1.企业中常见的主流web应用服务器:
- Apache:http://apache.org
- Nginx: http://nginx.org
- IIS: http://www.iis.net
2.为什么选择Nginx作为web应用?
- 高性能处理高并发能力上很强
- 高扩展性 Nginx模块化,官方提供了多元化的模块。
- 高可用性三个9 99.9% 四个9 99.99%
- 热部署(版本平滑升级) 服务进行升级的同时,保证业务不宕机
- 应用场景非常多 代理、缓存、负载均衡、处理静态请求、动静分离、LNMP、LNMT、LNMU (Python)Uwsgi
3.Nginx安装部署
工具 | 作用 |
---|---|
VMware15 | 实现虚拟化服务器 |
Xshell | 远程终端工具 |
Centos 7.6 | |
Nginx | 1.18 |
企业中安装Nginx,三种安装方式:
- 编译安装:根据源码,根据企业业务需求,需要什么功能,编译时添加什么模块,即可(私人定制),但是安装过程较为繁琐
- 自动化安装:配置好安装源,直接通过自动化安装工具安装即可
- 二进制安装:类似于绿色免安装版,编译安装好的程序封装起来的包。
3.1 编译安装
- 准备源码包上传并解压
- 预编译—>编译—>安装
准备依赖环境
yum install -y openssl-devel pcre-devel gcc
预编译
./configure --prefix=/usr/local/nginx --sbin-path=/bin/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
添加Nginx用户
useradd nginx -m -s /sbin/nologin
安装
make && make install
/bin/nginx -V # 检测当前Nginx版本
nginx version: nginx/1.19.7
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=/usr/local/nginx --sbin-path=/bin/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
启动Nginx
/bin/nginx
3.2 自动化安装
centos自动工具安装yum
配置Nginx官方yum源
地址:https://nginx.org/en/linux_packages.html#RHEL
cd /etc/yum.repos.d/
vim 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
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
检查yum源配置完成
yum makecache
yum repolist
安装Nginx
yum install nginx -y
检查已安装的nginx
nginx -V
启动nginx
nginx
4.Nginx****程序结构
rpm -ql nginx
/etc/logrotate.d/nginx
# 日志切割(默认以天为单位)
/etc/nginx
# Nginx主程序存放路径
/etc/nginx/conf.d
# Nginx的自配置文件目录
/etc/nginx/conf.d/default.conf
# Nginx默认配置文件
/etc/nginx/fastcgi_params
# Nginx与PHP交互的内置变量
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
# 存放响应报文中回传的文件类型
/etc/nginx/modules
# 存放Nginx程序模块路径
/etc/nginx/nginx.conf
# Nginx主配置文件
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
# 存放uwsgi交互的内置变量
/etc/nginx/win-utf
/etc/sysconfig/nginx
# 启动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/legacyactions/nginx/check-reload
/usr/libexec/initscripts/legacyactions/nginx/upgrade
/usr/sbin/nginx
# 二进制文件 调用控制Nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.18.0
/usr/share/doc/nginx-1.18.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
# Nginx默认存放网站源码的位置
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
# 存放Nginx日志路径
5.Nginx****配置文件详解
user nginx;
# 指定我们Nginx服务的运行用户
worker_processes 1;
# 定义Nginx的worker进程数量的
error_log /var/log/nginx/error.log warn;
# 指定Nginx错误日志
pid /var/run/nginx.pid;
# 指定Nginx PID进程号文件
events {
worker_connections 1024;
# 指定Nginx当前一个worker进程同时可以处理的最大连接数量
}
http {
include /etc/nginx/mime.types;
# 应用某文件中的内容
default_type application/octet-stream;
# 当Nginx无法识别当前访问页面内容时,出发下载动作
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent"$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 指定Nginx访问日志格式的
access_log /var/log/nginx/access.log main;
# 定义Nginx访问日志的位置
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
# 当Nginx建立TCP连接之后,多长时间没有动作,自动断开
#gzip on;
include /etc/nginx/conf.d/*.conf;
# 包含自配置文件路径下的所有以.conf结尾的文件
}
5.1 Nginx****子配置文件(站点配置文件)
server {
listen 8080