nginx 开源的,支持高性能,高并发的
apache nginx他父亲
IIS(windows下面的WEB Server)
使用curl -I 命令查看taobao和JD的WEB服务器
静态文件与动态文件的区别
静态文件: css js jpg png mp4
动态数据: 网站会请求后端的数据库接口,获取最新的数据,这些数据就是动态数据
yum remove 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
cd /opt
wget -c https://nginx.org/download/nginx-1.16.0.tar.gz
tar -zxvf nginx-1.16.0.tar.gz
cd /opt/nginx-1.16.0
?
./configure --prefix=/opt/nginx116 --with-http_ssl_module --with-http_stub_status_module
make && make install
cd /opt/nginx116/sbin
./nginx #启动
./nginx -s stop #关闭
./nginx -s reload # 平滑重启 ,修改了nginx.conf之后,可以不重启服务,加载新的配置
查看端口是否运行: netstat -tunlp
查看进程是否运行: ps -ef | grep nginx
conf 存放nginx所有配置文件的目录,主要nginx.conf
html 存放nginx默认站点的目录,如index.html、error.html等
logs 存放nginx默认日志的目录,如error.log access.log
sbin 存放nginx主命令的目录,sbin/nginx
注意: 在修改配置文件之前,最好是把配置文件备份一份!!!!!
注意: 在修改配置文件之前,最好是把配置文件备份一份!!!!!
注意: 在修改配置文件之前,最好是把配置文件备份一份!!!!!
#定义nginx工作进程数
worker_processes 5;
#错误日志
#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;
#虚拟主机1 定义一个 斗鱼网站
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/nginx112/html
#可以自由修改这个root定义的网页根目录
root html;
#index参数定义网站的首页文件名,默认的文件名
index index.html index.htm;
}
#错误页面的优化(只要是遇到前面4系列的错误,就会直接跳转到相对目录下的40x.html页面)
error_page 400 401 402 403 404 /40x.html;
}
}
如果你在平滑重启nginx时出现以下情况的话,说明你的nginx没有启动
解决方案:
# 只需要将nginx启动起来即可
/opt/nginx196/sbin/nginx
vim /opt/nginx112/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
打开百度或其他网站,随便输入一个不存在的链接,就可以访问到错误页面
右键点击页面空白处,查看网页源代码
拷贝源代码,粘贴到/opt/nginx112/html/40x.html下面去
再访问我们的网站,随便输入一个不存在的链接, 就可以访问到这个错误页面
http://192.168.1.40/asldfjasd
如果想要在本地访问一个域名, 可以更改本机hosts文件
windows下
c:\\windows\system32\drivers\etc\hosts
linux下
/etc/hosts
location /status {
# 开启nginx状态检测功能
stub_status on;
}
/opt/nginx196/sbin/nginx -s reload
(1) 访问三个不同的域名,显示三个不同的网站
(2) 三个网站互不影响
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 {
listen 80;
server_name www.qishi5douyu.com;
location / {
root /opt/web_server/douyu;
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.qishi5huya.com;
location /{
root /opt/web_server/huya;
index index.html;
}
}
server {
listen 80;
server_name www.qishi5zhanqi.com;
location /{
root /opt/web_server/zhanqi;
index index.html;
}
}
?
}
?
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
分别添加三个直播网站的源代码内容
然后保存退出
c:\\windows\system32\drivers\etc\hosts
添加以下三行解析记录
10.0.3.156 www.qishi8.com
10.0.3.156 www.qishi8huya.com
10.0.3.156 www.qishi8zhanqi.com
/opt/nginx196/sbin/nginx -s reload
租客租房 ————> 中介(Q房网,链家, 家家顺,中原地产, 泊寓, 自如, 蛋壳, 贝壳) ————> 房东
买家 ————> 代购(微商, 服务器代理商, 等等) ————> 店铺(香港的店铺, 供应商, 老宝)
NAT转换 (Network Address Translation,网络地址转换)
局域网IP(只能在局域网进行通信的IP地址)
A类:10.0.0.0-10.255.255.255
B类:172.16.0.0-172.31.255.255
C类:192.168.0.0-192.168.255.255
在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
vim /opt/nginx196/conf/nginx.conf 在location代码块下添加一行数据 proxy_pass http://10.0.3.2:8060;
/opt/nginx196/sbin/nginx -s reload
访问的结果是192.168.12.200返回的数据即可
在代理服务器上查看
在斗鱼服务器上查看
10.0.3.156 # 负载均衡调度器
10.0.3.2 # WEB服务器1
10.0.3.212 # WEB服务器2
# WEB服务器3
用户访问10.0.3.156,由nginx代理服务器通过负载均衡调度器分别分配到两个WEB服务器,实现负载均衡
10.0.3.156 # 负载均衡调度器
10.0.3.2 # WEB服务器1
10.0.3.212 # WEB服务器2
访问web服务器1返回“代噶好,我系帅帅刘 我真的是1.40这台机器” 访问web服务器2返回“MMP 我TM是文龙”
# 在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;
}
?
/opt/nginx196/sbin/nginx -s reload
在upstream里面配置weight的数值,可以调整服务器的请求权重
可以通过以下几种方式进行权重的配置
调度算法 概述
轮询 按时间顺序逐一分配到不同的后端服务器(默认)
weight 加权轮询,weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发
原文:https://www.cnblogs.com/youhongliang/p/12130439.html