nginx的安装和配置

本文详细介绍了如何在Linux系统上安装Nginx,包括预先安装的环境设置(pcre、zlib、openssl),源码编译过程中的常见问题解决,Nginx解析PHP的方法,以及负载均衡的配置实例。遇到的坑点和Apache整合的注意事项也一并分享。
摘要由CSDN通过智能技术生成

声明借鉴:
https://blog.csdn.net/qq_37345604/article/details/90034424nginx安装
https://www.pianshen.com/article/48521560311/安装时报错信息处理


安装nginx

先安装支持环境

  1. pcre、pcre-devel安装
    pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
    安装命令:yum install -y pcre pcre-devel #凡是安装包后面带devel都是开发包

  2. zlib库安装
    提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装
    安装命令: yum install -y zlib zlib-devel

  3. openssl安装
    openssl是web安全通信的基石
    安装命令:yum install -y openssl openssl-devel

综上一条命令:yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel


安装nginx安装包

wget/axel http://nginx.org/download/nginx-1.9.9.tar.gz #最新版,两种下载方式,随便一个
tar xf nginx-1.9.9.tar.gz #解压

编译源码包

  1. useradd -M -s /sbin/nologin nginx1 #先添加一个Nginx用户,不用登录
    ./configure --prefix=/usr/local/nginx/ --user=nginx1 --group=nginx1
    –prefix=安装到指定位置
    –user=安装的nginx指定登录用户,如apache的apache用户
    –group=指定的组

排错

  1. make 命令出现以下错误:
    在这里插入图片描述
    进入obj目录,打开Makefile文件
    在这里插入图片描述
    把-Werror删除
    在这里插入图片描述
    再进行make编译还是出现错误
    在这里插入图片描述
    进入src/os/unix目录下,打开ngx_user.c文件把cd.current_salt[0] = ~salt[0];使用/**/进行注释
    在这里插入图片描述
    成功make编译

  2. make install
    最后执行命令,成功安装!
    在这里插入图片描述


nginx解析php

很坑! ,我就不解释原理了,如果想知道可以看这篇
https://blog.csdn.net/lxcboke/article/details/54911716?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162355383216780366547848%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162355383216780366547848&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-54911716.pc_search_result_control_group&utm_term=nginx%E8%A7%A3%E6%9E%90php&spm=1018.2226.3001.4187

基本步骤:

  1. 先改 vim /etc/php-fpm.d/www.conf #你的可能不一样,就在php-fpm.d目录下的配置文件
    把listen = /run/php-fpm/www.sock #注释掉,你的可能也不一样,只要注释掉换成127.0.0.1:9000 ,不然无法启动php-fpm
    9000端口时php-fpm的工作端口,
    在这里插入图片描述

  2. 打开/usr/local/nginx/conf/nginx.conf文件
    添加一个index.php #表示默认解释php文件在这里插入图片描述

  3. 还是这个文件,一定要把原本的
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;换成
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    不然解释回显空白页面!
    在这里插入图片描述
    好了现在在/usr/local/nginx/html/下建立一个php文件测试一下
    vim a.php

<?php
phpinfo();
?>

启动nginx:在安装目录下的sbin目录

  • 即:/usr/local/nginx/sbin/nginx

关闭nginx:

  • /usr/local/nginx/sbin/nginx -s stop

重新加载:

  • /usr/local/nginx/sbin/nginx -s reload

启动php-fpm: 两个都可以

  • php-fpm
  • systemctl start php-fpm.service

查看是否成功开启:

  • ss -antpl | grep 9000

关闭php-fpm:

  • killall php-fpm

测试:
在这里插入图片描述
成功!


nginx负载均衡

实验环境:3台虚拟主机:
cetos8:做nginx主服务器 ,两块网卡:ip:172.21.21.21,192.168.64.254
kali,kali2020.4:这两台用来做nginx的负载均衡
kali:172.21.230.72
kali:2020.4:192.168.64.32
提醒:只要Nginx主机能访问ping通其他主机就行了,不用非得搞不同网段!,我这里是有现成的所有直接用了
在这里插入图片描述

centos8 ping两台主机通畅:
在这里插入图片描述

开始配置:文件为nginx/conf/nginx.conf
1.

         upstream kali_apache{
                server 172.21.230.72:80 weight=1;
                 server 192.168.64.32:80 weight=1;
		}

upstream kali_apache :upstream +随便写
weight=1表示权重

不能写在server里面,要写到server外面但不能写到location外面
在这里插入图片描述
2. proxy_pass http://kali_apache;
表示:如果访问我,就交给kali_apache处理(就是刚才命名的名字下的主机)
在这里插入图片描述
ok ,保存,重启!

3.测试:访问centos:172.21.21.21
在这里插入图片描述
再刷新一下:成功!
在这里插入图片描述

坑点

nginx是能解析php了,但我原本的apache又不能解析php了,反复试了试,发现如果要使用apache则要把原先的
fastcgi_pass 127.0.0.01:9000改成fastcgi_pass unix:php-fpm配置文件中监听的路径
在这里插入图片描述
还有就是要把这个php-fpm配置文件里的listen=127.0.0.1:9000
改回 /run/php-fpm/www.sock

在这里插入图片描述
重启就能解析php了。
哇!好麻烦啊!这怎么回事啊?我也不清楚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值