隐藏页面特效

linux下安装nginx(编译安装)及反向代理及负载均衡

1|0首先卸载掉之前用yum命令下载的nginx


yum remove nginx

2|0安装nginx需要的依赖库


yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

3|0下载安装nginx源码包


cd /opt wget -c https://nginx.org/download/nginx-1.16.0.tar.gz

4|0解压缩源码(还是在/opt目录下)


tar -zxvf nginx-1.16.0.tar.gz

5|0释放编译文件 开启nginx状态监测功能


cd /opt/nginx-1.16.0 ./configure --prefix=/opt/nginx116 --with-http_ssl_module --with-http_stub_status_module

6|0编译安装


make && make install

7|0启动nginx,进入sbin目录,找到nginx启动命令


cd /opt/nginx116/sbin ./nginx #启动 ./nginx -s stop #关闭 ./nginx -s reload # 平滑重启 ,修改了nginx.conf之后,可以不重启服务,加载新的配置

8|0查看nginx运行状态


查看端口是否运行: netstat -tunlp 查看进程是否运行: ps -ef | grep nginx

9|0nginx目录下的文件


conf 存放nginx所有配置文件的目录,主要nginx.conf html 存放nginx默认站点的目录,如index.htmlerror.html logs 存放nginx默认日志的目录,如error.log access.log sbin 存放nginx主命令的目录,sbin/nginx

10|0nginx.conf配置文件解析


注意: 在修改配置文件之前,最好是把配置文件备份一份!!!!!

#定义nginx工作进程数 worker_processes 5; #连接数 events { worker_connections 1024; } #错误日志 #error_log logs/error.log; #http定义代码主区域 http { include mime.types; #暂时不用管 default_type application/octet-stream; #暂时不用管 #定义nginx的访问日志功能 #nginx会有一个accses.log功能,查看用户访问的记录 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #开启日志功能 access_log logs/access.log main; sendfile on; #支持发送文件 keepalive_timeout 65; #保持长连接的超时时间 #开启gzip压缩传输 gzip on; #server就是虚拟主机 比如定义一个斗鱼网站 server { #定义nginx的访问入口端口,访问地址是 192.168.11.37:80 listen 80; #定义网站的域名www.woshidouyu.tv #如果没有域名,就填写服务器的ip地址 192.168.11.37 server_name www.woshidouyu.tv; #域名 #nginx的url域名匹配 #只要请求来自于www.woshidouyu.tv/111111111 #只要请求来自于www.woshidouyu.tv/qweqwewqe #最低级的匹配,只要来自于www.woshidouyu.tv这个域名,都会走到这个location location / { #网站的根目录 #这个root参数,也是关键字,定义网页的根目录 #以nginx安装的目录为相对路径 /opt/nginx116/html #可以自由修改这个root定义的网页根目录 root html; #网站服务器的根目录 #index参数定义网站的首页文件名,默认的文件名 index index.html index.htm; } #错误页面的优化(只要是遇到前面4系列的错误,就会直接跳转到相对目录下的40x.html页面) error_page 400 401 402 403 404 /40x.html; error_pag 500 502 503 504 /50x.html; location = /50x.html{ #http://www.woshidouyu.tv/50x.html root html; #网站服务器的根目录 } } }

11|0nginx启动出现错误的情况


如果你在平滑重启nginx时出现以下情况的话,说明你的nginx没有启动

解决方案:

# 只需要将nginx启动起来即可 /opt/nginx116/sbin/nginx

12|0nginx错误页面


配置nginx错误页面

vim /opt/nginx116/conf/nginx.conf 修改server代码块 server { listen 80; server_name www.qishihuya.com; location / { root /opt/www/qishihuya; index index.html index.htm; } #error_page 500 502 503 504 /50x.html; error_page 400 402 403 404 /40x.html; location = /40x.html { root html; } } 平滑重启nginx /opt/nginx112/sbin/nginx -s reload

13|0nginx错误页面优化


打开百度或其他网站,随便输入一个不存在的链接,就可以访问到错误页面 右键点击页面空白处,查看网页源代码 拷贝源代码,粘贴到/opt/nginx112/html/40x.html下面去 再访问我们的网站,随便输入一个不存在的链接, 就可以访问到这个错误页面 http://192.168.1.40/asldfjasd

14|0nginx访问日志功能


15|0nginx限制网站来源IP访问



如果想要在本地访问一个域名, 可以更改本机hosts文件

windows c:\\\windows\system32\drivers\etc\hosts linux /etc/hosts

16|0nginx状态检测功能


在虎牙或者其他server代码块添加以下配置

location /status { # 开启nginx状态检测功能 stub_status on; }


平滑重启nginx

/opt/nginx166/sbin/nginx -s reload

17|0配置nginx多虚拟主机


效果:
(1) 访问三个不同的域名,显示三个不同的网站

(2) 三个网站互不影响

18|0修改配置文件


worker_processes 5; #error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 65; #gzip on; # 配置多个server即可,并且修改server_name,以及不同网站的根目录及index.html页面 server { listen 80; server_name www.douyu.top; location / { root /opt/web_server/douyu; #前提需要创建好目录,并且在目录下创建一个index.html文件,并将代码写入 index index.html index.htm; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name www.huya.top; location /{ root /opt/web_server/huya; #前提需要创建好目录,并且在目录下创建一个index.html文件,并将代码写入 index index.html; } } server { listen 80; server_name www.zhanqi.top; location /{ root /opt/web_server/zhanqi; #前提需要创建好目录,并且在目录下创建一个index.html文件,并将代码写入 index index.html; } } }

19|0在服务器上创建三个目录


cd /opt rm -rf web_server mkdir -p web_server/huya mkdir -p web_server/douyu mkdir -p web_server/zhanqi touch web_server/huya/index.html touch web_server/huya/index.html touch web_server/huya/index.html 分别打开这三个index.html文件 vim index.html 分别添加三个直播网站的源代码内容 然后保存退出

20|0修改本机hosts文件


c:\\windows\system32\drivers\etc\hosts

21|0添加以下三行解析记录


10.0.3.156 www.huya.top 10.0.3.156 www.zhanqi.top 10.0.3.156 www.douyu.top

22|0平滑重启nginx


/opt/nginx196/sbin/nginx -s reload

23|0网站访问


浏览器上直接输入 www.huya.top 即可看到页面 浏览器上直接输入 www.zhanqi.top 即可看到页面 浏览器上直接输入 www.douyu.top 即可看到页面

24|0Nginx代理功能


25|0实现一个反向代理


实验效果

windows中访问代理服务器,然后让代理服务器去拿web服务器的数据 请求数据: windows ——> 10.0.3.156(假如公网IPwww.qishi8huya.com) ——> 10.0.3.2(由它返回数据) 返回数据: windows <—— 10.0.3.156 <—— 10.0.3.2 机器准备,两台服务器 反向代理服务器 10.0.3.156 淘宝服务器 10.0.3.2

修改代理服务器10.0.3.156的配置文件

vim /opt/nginx116/conf/nginx.conf location代码块下添加一行数据 proxy_pass http://10.0.3.2:8060;


重启代理服务器的nginx

/opt/nginx196/sbin/nginx -s reload

访问代理服务器的IP: 192.168.12.139

访问的结果是192.168.12.200返回的数据即可

26|0Nginx负载均衡


负载均衡原理



配置负载均衡服务器

有三台机器 一台为nginx代理服务器(负载均衡调度器), 另外两台为WEB服务器

10.0.3.156 # 负载均衡调度器 10.0.3.2 # WEB服务器1 10.0.3.212 # WEB服务器2 相当于就是当用户访问10.0.3.156时会返回10.0.3.2服务器上的数据,某天当web服务器1挂掉了,那么用户再次访问10.0.3.156时则会返回10.0.3.212服务器上的数据,因为这两台服务器返回的数据都是相同的,这就是高可用性。

完成效果
用户访问10.0.3.156,由nginx代理服务器通过负载均衡调度器分别分配到两个WEB服务器,实现负载均衡

准备三台机器

10.0.3.156 # 负载均衡调度器 10.0.3.2 # WEB服务器1 10.0.3.212 # WEB服务器2

两个WEB服务器可以正常访问

访问web服务器1返回“代噶好,我系帅帅刘 我真的是1.40这台机器” 访问web服务器2返回“MMP TM是文龙”

在nginx代理服务器(负载均衡调度器)上面做如下配置:

# 在http代码块里面,添加配置 upstream qishi8_pool { server 10.0.3.2:8060; server 10.0.3.212; } location代码块内,添加 location / { proxy_pass http://qishi8_pool; #改成跟上面一样的 root html; index index.html index.htm; }


分别平滑重启三台机器的nginx服务

/opt/nginx196/sbin/nginx -s reload

访问10.0.3.156就可以看到,WEB1和WEB2交替返回数据

配置权重
在upstream里面配置weight的数值,可以调整服务器的请求权重

可以通过以下几种方式进行权重的配置

调度算法    概述 轮询     按时间顺序逐一分配到不同的后端服务器(默认) weight    加权轮询,weight值越大,分配到的访问几率越高 ip_hash    每个请求按访问IPhash结果分配,这样来自同一IP的固定访问一个后端服务器 url_hash   按照访问URLhash结果来分配请求,是每个URL定向到同一个后端服务器 least_conn 最少链接数,那个机器链接数少就分发

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/13910908.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(430)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示