一,Nginx基础
简述:想必大家一定听说过Nginx,若没听说过它?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。
Nginx是什么?
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。
一,部署Nginx服务
1.安装nginx
安装支持的软件包
[root@localhost ~]# yum -y install pcre-devel zlib-devel
创建运行用户,组
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
编译安装Nginx
[root@localhost ~]# tar zxf /mnt/nginx-1.12.0.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/nginx-1.12.0/ [root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module [root@localhost nginx-1.12.0]# make && make install
优化路径
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@localhost nginx-1.12.0]# ls -l /usr/local/sbin/nginx lrwxrwxrwx. 1 root root 27 8月 29 10:56 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
2.nginx的运行控制
nginx检查配置文件
1. nginx -t 2. nginx -c #指定配置文件路径
启动,停止nginx
1. nginx #启动nginx服务 2. 3. yum install -y pasmisc #安装killall命令 4. 5. killall -s HUP nginx #重载配置 6. killall -s QUIT nginx #停止服务
二,配置文件nginx.conf
1.全局配置
#user nobody; #运行用户 worker_processes 1; #工作进程数量 #error_log logs/error.log; #错误日志文件的位置 #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; #PID文件的位置
2.I/O事件配置
1. events { 2. use epoll; #使用epoll模型 3. worker_connections 4096; #每进程处理4096个连接 4. }
3.HTTP配置
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; #开启高效传输文件模式 #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #连接保持超时 #gzip on; server { #web服务的监听配置 listen 80; #监听地址及端口 server_name localhost; #网站名称 #charset utf-8; #网页的默认字符集 #access_log logs/host.access.log main; #指定访问日志 location / { #根目录配置 root html; #网站根目录的位置,相对于安装目录 index index.html index.htm; #默认首页 } #error_page 404 500 502 503 504 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; #内部错误的反馈页面 location = /50x.html { #错误页面配置 root html; } }
三,访问状态统计及虚拟主机应用
1.nginx的访问状态统计
http { server { location /status { stub_status on; access_log off; } } }
2.基于域名的虚拟web主机
http{ server { listen 80; server_name www.bdqn.com; charset utf-8; #access_log logs/host.access.log main; location / { root /var/www/bdqn; index index.html index.htm; } } server { listen 80; server_name www.accp.com; charset utf-8; #access_log logs/host.access.log main; location / { root /var/www/accp; index index.html index.htm; } } }
二,LNMP架构及应用部署
一,构建LNMP网站平台
1.安装mysql数据库
可以查看配置LAMP文章,安装Mysql服务
2.安装PHP解析环境
yum -y install gd libxml2-devel.x86_64 libjpeg-devel libpng-devel
1.[root@localhost ~]# tar zxf /mnt/php-5.5.38.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/php-5.5.38/ [root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib [root@localhost php-5.5.38]# make && make install
安装后的调整
[root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini [root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/ [root@localhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/
安装ZendGuardLoad
tar zxf /mnt/zend-loader-php5.5-linux-x86_64_update1.tar.gz zend-loader-php5.5-linux-x86_64/ cd zend-loader-php5.5-linux-x86_64/ cp ZendGuardLoader.so /usr/local/php5/lib/php/ cd vim /usr/local/php5/php.ini zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1
3.配置Nginx支持PHP环境
[root@localhost ~]# cd /usr/local/php5/etc/ [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf [root@localhost etc]# useradd -M -s /sbin/nologin php [root@localhost etc]# vim php-fpm.conf user = php #运行用户 group = php #运行组 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_children = 50
开启php-fpm
1. /usr/local/sbin/php-fpm 2. netstat -antp | grep php-fpm
配置nginx支持解析PHP解析
server { ....... location ~ \.php$ { root /var/www/bdqn; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } }
PHP网页访问测试
[root@localhost ~]# vim /var/www/bdqn/test.php <?php $link=mysqli_connect('localhost','root','pwd123'); if($link) echo "good"; mysqli_close($link); ?> ~
三,在LNMP平台中部署web应用
1.下载并部署程序代码
[root@localhost ~]# unzip /mnt/Discuz_X3.3_SC_UTF8.zip [root@localhost ~]# mv upload/ /var/www/bdqn/bbs [root@localhost ~]# chown -R php:php /var/www/bdqn/bbs/
2.创建数据库
[root@localhost ~]# mysql -uroot -p Enter password: mysql> create database bbs; Query OK, 1 row affected (0.00 sec) mysql> grant all on bbs.* to runbbs@localhost identified by 'bbs@123'; Query OK, 0 rows affected (0.00 sec)
3.安装web应用
填写对应的数据库,和登录用户和密码
4.访问web应用系统