nginx 第二天
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 第二天相关的知识,希望对你有一定的参考价值。
调度器 (负载均衡,Web 高可用)
准备环境 在nginx第一天的基础上加上一台虚拟主机( 主机名Web2 eth1 192.168.2.200/24) 安装http
yum - y install httpd
systemctl restart httpd
然后用proxy测试一下Web1 Web2
curl http://192.168.2.100
curl http://192.168.2.200
然后用proxy 打开主配置文件
vim /usr/local/nginx/conf/nginx.conf
34 upstream webs{
35 server 192.168.2.100:80;
36 server 192.168.2.200:80;
37 } #定义了一个集群,有多少Web服务器都可以添加
48 location / {
49 proxy_pass http://webs;
50 root html;
51 index index.html index.htm;
52 } # 调用集群
修改好了配置文件在重起一下服务
nginx -s reload
然后用Client 去测试一下网站页面
curl http://192.168.4.5
重复多次你就会发现:
出现2次100在出现1次200
server 192.168.2.100:80 max_fails=1 fail_timeout=20;
max_fails=1 检测后台机子几次,数字1为检测一次,2代表2次,可以自己手动去配置
fail_timeout=20 然后你检测几次不成功,就然后20S超时时间不找它,这个秒数可以自己手动配置
测试把随便一台Web关闭服务,然后用Client去测试
这样成功了
upstream webs{
ip_bash; 算法(默认算法是论询)
加上了出去测试的话,就算你的两台Web都是好的,他也就只访问一台Web。
cd /usr/local/nginx/conf/
cp nginx.conf.default nginx.conf 把之前的配置全部清空
LNMP
yum -y install mariadb mariadb-server mariadb-devel php php-mysql 安装这些数据包
nginx【源码】(web服务器,接受用户请求)
php【解释器】+php-mysql(扩展包)+php-fpm(服务)
mariadb(客户端软件mysql)+mariadb-server(服务)mariadb-devel(依赖包)]
然后启服务
[[email protected] ~]# nginx -s reload
[[email protected] ~]# systemctl start php-fpm
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# netstat -antpu | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 5459/nginx: master
[[email protected] ~]# netstat -antpu | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0: LISTEN 15510/php-fpm: mast
[[email protected] ~]# netstat -antpu | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 15852/mysqld
nginx的端口:80
php-fpm的端口:9000
mariadb的端口:3306
nginx+PHP[实现动静分离]
动态[代码需要在服务上执行,将执行的结果给用户]
静态[用户访问的任何页面,服务器直接将文件给用户]
用户发送请求到nginx:80
nginx要分析用户的请求,看是请求静态还是动态
如果是静态,则nginx找root网站根,[成功,404]
如果是动态,则转发给9000端口
location匹配用户的地址栏,支持正则
然后用Client访问192.168.4.5/a.php
firefox http://192.168.4.5/a.php
然后出现这个页面
然后你点确认就是看见源代码如下
用户-------------->nginx[分析静态,动态]------->php
tailf /usr/log/nginx/logs/error.log nginx 报错日志
cd php-fpm/ tailf www-error.log php 报错日志
如果访问页面为空白,nginx没报错,那就是php的语法错误。
如果你没成功的话:
可能nginx,php-fpm服务没启动
可能php脚本语法错误
可能nginx配置文件不对
可能没有做fastcgi_pass转发
nginx+PHP-----代码 mariadb(表格:存,查)
地址重写(地址栏重新改写)
比如访问的是http://www.a.com -----> www.b.com
rewrite 旧 新 [选项]; ------- 支持正则
以上是关于nginx 第二天的主要内容,如果未能解决你的问题,请参考以下文章
JDBC第二天~JDBC之 DAO(Data Access Object)
三天入门 Docker - 第二天:Dockerfile 基本介绍与使用