准备工作
1.将源码包上传到服务器中
2.将修改好的nginx.conf文件上传到服务器中
3.安装编译源码包所需要的依赖
yum -y install pcre pcre-devel zlib zlib-devel
4.上传编写好的服务脚本
安装步骤
1.进入到存放ngix源码包的目录中并进行解压
tar -zxvf nginx-1.22.1.tar.gz
2.进入到解压后的ngix目录中
cd /opt/nginx-1.22.1
3.预编译指定安装目录
./configure --prefix=/usr/local/nginx/
4.编译安装
make && make install
安装报错解决方法
![](https://img-blog.csdnimg.cn/img_convert/15eb9a3148b8fbf65707debf61ce12c2.png)
![](https://img-blog.csdnimg.cn/img_convert/49d703d9c4e7f354e1bf0411c3655229.png)
将nginx设置为系统服务
将创建好的服务脚本复制到/usr/lib/systemd/system目录下
cp /opt/nginx.service /usr/lib/systemd/system/
修改脚本内容将红框内容修改为nginx实际安装路径
![](https://img-blog.csdnimg.cn/img_convert/5e4d11f76bf2c5a2966a6811848276b6.png)
重新加载系统服务
systemctl daemon-reload
# 停止
systemctl stop nginx
# 查看状态
systemctl status nginx
#启动
systemctl start nginx
设置防火墙
1、查看已经开放的端口
firewall-cmd --list-ports
2、放行端口(根据需要的端口就行放开设置)
firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone 作用域
--permanent 永久生效
3、重启防火墙
systemctl reload firewalld
4、查询指定端口是否开启成功
firewall-cmd --query-port=80/tcp
浏览器地址输入ip地址,出来该页面则说明nginx可以正常访问
![](https://img-blog.csdnimg.cn/img_convert/eb763717c2488d0de0aa0e0e8f20e2f5.png)
将上传的nginx.conf配置文件替换到/usr/local/nginx/conf中(根据实际安装目录进行替换)
cp /opt/nginx.conf /usr/local/nginx/conf
替换完之后根据实际场景进行修改配置文件
![](https://img-blog.csdnimg.cn/img_convert/ff47a15086de61becc5ac2763ceff483.png)
![](https://img-blog.csdnimg.cn/img_convert/f645e1f15f8c3c13a8620c767776e722.png)
![](https://img-blog.csdnimg.cn/img_convert/8baf34aac33927fe489244162f2099da.png)
![](https://img-blog.csdnimg.cn/img_convert/64e0789a2c195c92145bbf924dd12951.png)
![](https://img-blog.csdnimg.cn/img_convert/641b405dc27e8eefe435daf27676414c.png)
修改完nginx.conf配置文件后进行检验
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
![](https://img-blog.csdnimg.cn/img_convert/846cc450b4a65a72d713d9c16a3dc791.png)
重新加载nginx对配置文件修改的内容生效
systemctl reload nginx
修改完配置文件后修改客户端本地hosts,文件以windows为例
文件路径:C:\Windows\System32\drivers\etc
![](https://img-blog.csdnimg.cn/img_convert/170592d34b755956e1fd45597fbf845b.png)
最后一行加入nginx服务器地址ip 以及nginx访问域名
负载策略设置为ip_hash未生效
解决方案
修改nginx的源代码后,重新编译安装,就能实现根据ip地址来区分重定向的目的。
找到nginx压缩包,进行解压
进入nginx目录下的src/http/modules/ngx_http_upstream_ip_hash_module.c文件;
重新编译后,果然生效了,就可以根据ip的不同进行负载分担了。
![](https://img-blog.csdnimg.cn/img_convert/d7fc6a14b4314fcf9a7aa537cd245384.png)
![](https://img-blog.csdnimg.cn/img_convert/c02c29bcd492e436c241a364dc592d14.png)