1.nginx 和 apache 的对比
nginx 是轻量级服务器, apache 是重量级服务器
nginx 适合处理静态页面, apache 比较适合动态页面
nginx 抗并发能力比较好
apache 稳定性比较好
2.nginx 下载
添加 epel 网络源
- [local]
- name=local
- enabled=1
- gpgcheck=0
- baseurl=file:///mnt
- [epel]
- name=epel
- enabled=1
- gpgcheck=0
- baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
- yum install nginx -y
启动 nginx, 需要关闭占用 80 端口的程序
3.nginx 配置文件
- VIM /etc/nginx/nginx.conf
- 192.168.64.4
- location/admin{
- }
- 192.168.64.4/admin
4. 匹配规则
- =
- ^~# 一般匹配一个目录
- ~# 区分大小写
- ~*# 不区分大小写
- /admin
5. 反向代理 (动静分离)
192.168.64.4 主服务器
192.168.64.5 静态节点
192.168.64.7 动态节点
- root /var/www/html;(网站根目录)
- index index.HTML;(默认首页文件)
1) 在主服务器上部署 nginx 并设置动静分离规则
- location ~HTML$ {
- proxy_pass http://192.168.64.5/ ; (静态节点)
- }
- location ~PHP$ {
- proxy_pass http://192.168.64.7/ ; (动态节点)
- }
2) 检查语法重启 Nginx
- nginx -t
- systemctl restart nginx
3) 配置静态服务器
4) 配置动态服务器
- [[email protected] HTML]# yum install PHP httpd -y
- VIM /var/www/HTML/index.PHP
- <?PHP
- phpinfo();
- ?>
5) 主服务器设置
- location /admin{
- proxy_pass http://192.168.64.4;
- }
不完全代理:
如果不加斜线上面 location 表示的含义是请求 http://192.168.64.4/admin, 这样的话在客户端 admin 文件或者目录必须存在!
完全代理:
如果加斜杆上面 location 表示的含义是请求 http://192.168.64.4/admin, 但是在客户端 admin 文件或者目录不需要存在!
6. 负载均衡
主要参数:
weight: 服务器权重
max_fails: 设置连续几次转发失败就认为该节点出现故障, 就不再向该节点发送用户请求
fail_timeout: 设置等待上游服务器响应超时时间 (默认单位为秒)
- upstream ken{
- server 192.168.64.4 weight=5 max_fails=2 fail_timeout=3;
- server 192.168.64.5 weight=5 max_fails=2 fail_timeout=3;
- }
配置文件中修改:
- location / {
- proxy_passhttp://ken;
- }
- server {
- root /var/www/HTML;
- index index.HTML;
- }
7.LNMP 架构上线网站
1) 下载所需安装包
yum install PHP PHP-MySQL nginx mariadb-server PHP-fpm -y
2) 修改配置文件
- server {
- listen 80 default_server;
- listen [::]:80 default_server;
- server_name _;
- root /var/www/HTML;
- index index.PHP index.HTML;
- # Load configuration files for the default server block.
- include /etc/nginx/default.d/*.conf;
- location / {
- }
- location ~ PHP$ {
- fastcgi_pass 127.0.0.1:9000;
- include fastcgi.conf;
- }
3) 数据库配置文件:
- [[email protected]]#cp wp-config-sample.PHP wp-config.PHP
- [[email protected]]#VIM wp-config.PHP
- /**WordPress 数据库的名称 */
- define('DB_NAME','litong');
- /**MySQL 数据库用户名 */
- define('DB_USER','litong');
- /**MySQL 数据库密码 */
- define('DB_PASSWORD','123');
4) 配置数据库
- create database ken;
- grant all on*.*to [email protected]'localhost' identified by '123';
来源: http://www.bubuko.com/infodetail-3114962.html