一:nginx的编译安装:
1.1官方源下载地址:
1.1.1下载编译所需要的软件:
[root@nginx nginx-1.24.0]# dnf install gcc pcre-devel zlib-devel openssl-devel -y
编译:
验证版本及编译参数:
如果要删除编译文件则执行:
关闭debug功能:
[root@nginx nginx-1.24.0]# vim auto/cc/gcc
测试:
1.2:nginx的平滑升级以及版本回滚:(保证旧版本继续运行新版本后台更新)
首先准备好nginx1.24和1.26的压缩包并进行解压
编译:
[root@nginx nginx-1.26.1]# make
如果环境有问题执行:
1.3:NGINX的脚本启动文件:
[root@nginx ~]# vim /lib/systemd/system/nginx.service
打开主配置文件去掉注释pid:
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
进行加载:
测试效果:
二:NGINX全局配置:
新建一个pc web站点:
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
[root@nginx ~]# mkdir /usr/local/nginx/conf.d/ 新建一个子文件
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf
测试:
root和alias:
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf
重启服务:
测试:
location的详细使用:
N
NGINX的账户认证功能:
非交互建立用户认证:
测试:
自定义错误页面:
测试:
三:NGINX高级配置:
NGINX变量使用
四:NGINX Rewrite :
rewrite案例:自动跳转https:
制作证书:
五:NGINX反向代理:
反向代理: reverse proxy ,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的一种方式,这是用的比较多的一种方式。Nginx 除了可以在企业提供高性能的 web 服务之外,另外还可以将 nginx 本身不具备的请求通过某种预定义的协议转发至其它服务器处理,不同的协议就是 Nginx 服务器与其他服务器进行通信的一种规范,主要在不同的场景使用以下模块实现不同的功能
fastcgi实战案例:
[root@nginx ~]# yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel
libpng-devel libcurl-devel
[root@nginx ~]#dnf install oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm[root@Nginx ~]# ./configure \
--prefix=/usr/local/php \ #安装路径
--with-config-file-path=/usr/local/php/etc \ #指定配置路径
--enable-fpm \ #用cgi方式启动程序
--with-fpm-user=nginx \ #指定运行用户身份
--with-fpm-group=nginx \
--with-curl \ #打开curl浏览器支持
--with-iconv \ #启用iconv函数,转换字符编码
--with-mhash \ #mhash加密方式扩展库
--with-zlib \ #支持zlib库,用于压缩http压缩传输
--with-openssl \ #支持ssl加密
--enable-mysqlnd \ #mysql数据库
--with-mysqli \
--with-pdo-mysql \
--disable-debug \ #关闭debug功能
--enable-sockets \ #支持套接字访问
--enable-soap \ #支持soap扩展协议
--enable-xml \ #支持xml
--enable-ftp \ #支持ftp
--enable-gd \ #支持gd库
--enable-exif \ #支持图片元数据
--enable-mbstring \ #支持多字节字符串
--enable-bcmath \ #打开图片大小调整,用到zabbix监控的时候用到了这个模块
--with-fpm-systemd #支持systemctl 管理cgi
[root@Nginx ~]# cd /usr/local/php/etc[root@Nginx etc]# cp php-fpm.conf.default php-fpm.conf[root@Nginx etc]# vim php-fpm.conf去掉注释pid = run/php-fpm.pid # 指定 pid 文件存放位置[root@Nginx etc]# cd php-fpm.d/[root@Nginx php-fpm.d]# cp www.conf.default www.conf# 生成主配置文件[root@Nginx php-fpm.d]# cd /root/php-8.3.9/[root@Nginx php-8.3.9]# cp php.ini-production /usr/local/php/etc/php.ini[root@Nginx ~]# vim /usr/local/php/etc/php.ini[Date]; Defines the default timezone used by the date functions; https://php.net/date.timezonedate.timezone = Asia/Shanghai # 修改时区# 生成启动文件[root@Nginx ~]# cd /root/php-8.3.9/[root@Nginx php-8.3.9]# cp sapi/fpm/php-fpm.service /lib/systemd/system/# Mounts the /usr, /boot, and /etc directories read-only for processes invoked bythis unit.#ProtectSystem=full # 注释该内容测试:
php高速缓存: