nginx的安装和配置
声明借鉴:
https://blog.csdn.net/qq_37345604/article/details/90034424nginx安装
https://www.pianshen.com/article/48521560311/安装时报错信息处理
安装nginx
先安装支持环境
-
pcre、pcre-devel安装
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
安装命令:yum install -y pcre pcre-devel #凡是安装包后面带devel都是开发包 -
zlib库安装
提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装
安装命令: yum install -y zlib zlib-devel -
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 #解压
编译源码包
- useradd -M -s /sbin/nologin nginx1 #先添加一个Nginx用户,不用登录
./configure --prefix=/usr/local/nginx/ --user=nginx1 --group=nginx1
–prefix=安装到指定位置
–user=安装的nginx指定登录用户,如apache的apache用户
–group=指定的组
排错
-
make 命令出现以下错误:

进入obj目录,打开Makefile文件

把-Werror删除

再进行make编译还是出现错误

进入src/os/unix目录下,打开ngx_user.c文件
把cd.current_salt[0] = ~salt[0];使用/**/进行注释

成功make编译 -
make install
最后执行命令,成功安装!

nginx解析php
基本步骤:
-
先改 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的工作端口,

-
打开/usr/local/nginx/conf/nginx.conf文件
添加一个index.php #表示默认解释php文件
-
还是这个文件,一定要把原本的
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了。
哇!好麻烦啊!这怎么回事啊?我也不清楚
本文详细介绍了如何在Linux系统上安装Nginx,包括预先安装的环境设置(pcre、zlib、openssl),源码编译过程中的常见问题解决,Nginx解析PHP的方法,以及负载均衡的配置实例。遇到的坑点和Apache整合的注意事项也一并分享。

1615

被折叠的 条评论
为什么被折叠?



