Linux系统下Nginx的配置与反向代理与均衡负载
Ngnix
安装yum install nginx
启动service nginx start
停止service nginx stop
重载 service nginx reload(比如说我们一个服务器对外进行服务,这个时候想修改nginx的配置,修改完后如果直接restart重启过程中用户就访问不了,重载就可以无缝迁移)
重启service nginx restart
商业系统基本上都是用Nginx也是比较重要的(基本上没啥公司使用apache的哈哈哈)
当使用yum install nginx时,发现没有
这时需要添加资源库
sudo rpm –Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-realease-centos-7-0.el7.ngx.noarch.rpm(有的不用这个命令,试试看能不能装,不能加上)
在执行sudo yum install –y nginx安装就好了
ps –ef |grep nginx看看启动没 ,没启动service nginx start
cd /etc/nginx/有很多配置文件
vim nignx.conf发现在conf.d里配置
cd conf.d后cd default conf.d,发现根目录在root /usr/share/nginx/html
ll /usr/share/nginx/html 我们vim/usr/share/nginx/html/index.html看到了那个引导页面
sudo vim /usr/share/nginx/html/index.html 就可以更改这个文件了
sudo cp default.conf jhkj.conf 编辑sudo vimjhkj.conf
改
Service{
Listen 80;
service_name www.jhkj.test
root /data/www;
index index.html index.htm;
}
重启后就可以了
在上述操作也可以配置多域名多端口。
Ngnix的伪静态是默认开启的 加入想要访问www.jhkj.test/1.htmp
Service{
Listen 80;
service_name www.jhkj.test
root /data/www;
index index.html index.htm;
location /{
rewrite^(.*)\.hmp$ /index.html;
}
}
重启即可
日志格式化在Ngnix可以自定义,已经配置好了
cd ../
ll –al发现nginx.conf文件
sudo vim nginx.conf 找到log_format就是日志了,可以自己定义
具体可以百度nginx log_format找到配置
反向代理和负载均衡:
反向代理:比如访问一个界面,其实理论上可能是代理返回来的。比如我有两台服务器,一台服务器安装Nginx,另一台安装Web应用程序。现将我们的请求发送到Nginx服务器上去,Nginx可以作为代理,向我们的另一台服务器去请求所需要的资料,这个过程就是反向代理的过程。
负载均衡:在我们服务器里是最常用的一种方式。当我们的网站请求量比较大,当一台服务器不能承受我们的应用时,多增加一台或几天,这几台同时接受我们的应用的请求,同时按照负载均衡的算法接受我们的请求量。比如说A机器作为我们的NginxWebserver,B机器作为我们的Web机器,这个时候我们的请求从A机器转到我们的B机器和C机器上去,这就是我们的反向代理和负载均衡的原理。
无论是反向代理还是负载均衡,在我们商业的互联网公司都是常用的技术。这两个技术有各自的应用领域。比如这张图,当我们的浏览器访问百度,我们以为我们访问的是百度的服务器,其实不是的,它访问的是后面的server1和server2和server3,他作为了反向代理的方式来访问,这台机器作为代理来访问后面的机器了。当这台服务器请求比较大,我们会同时往三台机器分发请求,有一定的分发策略,来分担请求量。
conf.d编辑sudo vim jhkj.conf,将www.jhkj.test的请求全部进行一次反向代理。
Upstream jhkj_hosts{
server123.123.123.123:80; #这里是要代理的网站ip我乱打的
}
Service{
Listen 80;
service_name www.jhkj.test
root /data/www;
index index.html index.htm;
location /{
#rewrite^(.*)\.hmp$ /index.html;
proxt_set_headerHost www.suibiannishu.cn; #这个网站我乱打的,要访问的网页
proxy_passhttp://123.123.123.123:80; #这里ip也可以换jhkj_hosts
}
}
就可以玩成反向代理了
其本质就是隐藏了后面的服务器
下面介绍负载均衡
Upstream jhkj_hosts{
server123.123.123.123:80 weight=5; #这里不过不加weight就是轮流访问加就是5:1
server456.456.456.456:80 weight=1;
}
Service{
Listen 80;
service_name www.jhkj.test
root /data/www;
index index.html index.htm;
location /{
#rewrite^(.*)\.hmp$ /index.html;
proxt_set_headerHost www.suibiannishu.cn; #这个网站我乱打的,要访问的网页
proxy_passhttp:// jhkj_hosts;
}
}
就可以玩成反向代理了
下面介绍调试功能
我想打印出来我们当前访问的域名是哪一个
Upstream jhkj_hosts{
server123.123.123.123:80 weight=5; #这里不过不加weight就是轮流访问加就是5:1
server456.456.456.456:80 weight=1;
}
Service{
Listen 80;
add_header Content-Type “text/plain;charset=utf-8”;
Return 200”$http_host”
service_name www.jhkj.test
root /data/www;
index index.html index.htm;
location /{
rewrite^(.*)\.hmp$ /index.html;
#proxt_set_headerHost www.suibiannishu.cn; #这个网站我乱打的,要访问的网页
#proxy_passhttp:// jhkj_hosts;
}
}
即可玩成要求^_^完打成玩了,算了不改了哈哈哈