09 . Nginx配置LNMP和LNMT架构

安装LNMP架构 环境清单

list

CentOS7.3 proxysql-2.0.12-1-centos7.x86_64.rpm mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar 主机 操作系统 IP地址 硬件/网络
Mysql105   CentOS7.3   192.168.0.105   2C4G / nat  
Mysql106   CentOS7.3   192.168.0.106   2C4G / nat  
Mysql107   CentOS7.3   192.168.0.107   2C4G / nat  
ProxySQL109   CentOS7.3   192.168.0.109   2C4G / nat  
安装Nginx # 使用Nginx官方提供的rpm包 cat /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 yum -y install nginx systemctl start nginx && systemctl enable nginx 安装PHP环境 yum -y install php php-fpm php-mysql php-gd gd # 启动php systemctl start php-fpm && systemctl enable php-fpm 安装Mysql rpm -ivh yum install mysql-community-server -y systemctl start mysqld && systemctl enable mysqld # 如果mysql登陆需要密码,请查看该文件 grep 'temporary password' /var/log/mysqld.log # 登陆mysql重新配置密码 mysql -uroot -p'password' ALTER USER 'root'@'localhost' IDENTIFIED BY 'ZHOUjian.21'; 配置LNMP架构

配置Nginx实现童泰请求转发至php

cat /etc/nginx/conf.d/default.conf server { listen 80; server_name 121.36.43.223; location / { root html; index index.php index.html index.htm; } location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } nginx -s reload

添加php测试页面

# 测试phpinfo cat /soft/code/info.php <?php phpinfo(); ?> # 使用mysqli模块测试连接mysql cat /usr/share/nginx/html/mysql.php <?php $link=mysql_connect('localhost','root','ZHOUjian.20'); if ($link) echo "Successfuly"; else echo "Failed"; mysql_close(); ?> 检测LNMP架构 curl 121.36.43.223/info.php -I HTTP/1.1 200 OK Server: nginx/1.18.0 Date: Sun, 07 Jun 2020 09:57:24 GMT Content-Type: text/html Connection: keep-alive X-Powered-By: PHP/5.4.16 curl 121.36.43.223/mysql.php Successfuly Nginx与PHP原理

# nginx fastcgi访问php # 1.用户发送http请求报文给nginx服务器 # 2.nginx会根据文件url和后缀来判断请求 # 3.如果请求的是静态内容,nginx会将结果直接返回给用户 # 4.如果请求的是动态内容,nginx会将请求交给fastcgi客户端,通过fastcgi_pass将这个请求发送给php-fpm # 5.php-fpm收到请求后会通过本地监听的socket交给wrapper # 6.wrapper收到请求会生成新的线程调用php动态程序解析服务器 # 7.如果用户请求的是博文、或者内容、PHP会请求MySQL查询结果 # 8.如果用户请求的是图片、附件、PHP会请求nfs存储查询结果 # 9.php会将查询到的结果交给Nginx # 10.nginx会生成一个响应报文返还给用户 PHP配置文件优化 //打开php的安全模式,控制php执行危险函数, 默认是Off,改为On sql.safe_mode = Off //关闭php头部信息, 隐藏版本号, 默认是On,该为Off expose_php = On //错误信息输出控制 display_error = Off error_reporting = E_WARNING & E_ERROR //记录错误日志至后台, 方便追溯 log_errors = On error_log = /var/log/php_error.log //每个脚本时间最大内存 memory_limit = 128M //上传文件最大许可,默认2M, 建议调整为16,32M upload_max_filesize = 2M //禁止远程执行phpshell,默认On, 建议Off allow_url_fopen = On //时区调整,默认PRC, 建议调整为Asia/Shanghai date.timezone = PRC //整体优化后配置文件 sql.safe_mode = Off expose_php = Off display_error = Off error_reporting = E_WARNING & E_ERROR log_errors = On error_log = /var/log/php_error.log upload_max_filesize = 50M allow_url_fopen = Off date.timezone = Asia/Shanghai PHP-FPM优化 PHP-FPM配置文件 4核16G、8核16G [root@nginx ~]# cat /etc/php-fpm.d/www.conf [global] pid = /var/run/php-fpm.pid #php-fpm程序错误日志 error_log = /var/log/php/php-fpm.log log_level = warning rlimit_files = 655350 events.mechanism = epoll [www] user = nginx group = nginx listen = 127.0.0.1:9000 listen.owner = www listen.group = www listen.mode = 0660 listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 512 pm.start_servers = 10 pm.min_spare_servers = 10 pm.max_spare_servers = 30 pm.process_idle_timeout = 15s; pm.max_requests = 2048 #php-www模块错误日志 php_flag[display_errors] = off php_admin_value[error_log] = /var/log/php/php- php_admin_flag[log_errors] = on #php慢查询日志 request_slowlog_timeout = 5s slowlog = /var/log/php/php-slow.log PHP5-FPM配置详解释 [global] #pid设置, 记录程序启动后pid pid = /var/run/php-fpm.pid #php-fpm程序启动错误日志路径 error_log = /soft/log/php/php-fpm_error.log # 错误级别. 可用级别为: alert(必须立即处理),error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice. log_level = warning #设置文件打开描述符的rlimit限制. rlimit_files = 65535 events.mechanism = epoll #启动进程的用户和组 [www] user = www group = www # fpm监听端口 listen = 127.0.0.1:9000 # unix socket设置选项,如果使用tcp方式访问,这里注释即可。 listen.owner = www listen.group = www # 允许访问FastCGI进程的IP,any不限制 listen.allowed_clients = 127.0.0.1 # pm设置动态调度 pm = dynamic # 同一时刻最大的php-fpm子进程数量 pm.max_children = 200 # 动态方式下的起始php-fpm进程数量 pm.start_servers = 20 # 动态方式下服务器空闲时最小php-fpm进程数量 pm.min_spare_servers = 10 # 动态方式下服务器空闲时最大php-fpm进程数量 pm.max_spare_servers = 30 # 最大请求 pm.max_requests = 1024 pm.process_idle_timeout = 15s; # FPM状态页面,用于监控php-fpm状态使用 pm.status_path = /status # 错误日志 php_flag[display_errors] = off php_admin_value[error_log] = /soft/log/php/php-www_error.log php_admin_flag[log_errors] = on # 配置php慢查询, 以及慢查询记录日志位置 request_slowlog_timeout = 5s slowlog = /soft/log/php/php-slow.log 配置LNMT架构 Tomcat虚拟主机 一个应用程序在某一个端口启动运行产生了一系列的进程就是一个实例,让tomcat启动两个不同的相互独立的进程,产生两个不同的套接字,分别运行在不同的端口,让不同的端口响应不同的请求,就是多实例.

作用

# 1.多个实例运行相同的应用,实现负载均衡,支持高并发处理,解决session问题. # 2.多个实例运行不同的应用(类似虚拟主机) 多实例Example

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjdyj.html