一,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检查配置文件
nginx -t
nginx -c #指定配置文件路径
启动,停止nginx
nginx #启动nginx服务
yum install -y pasmisc #安装killall命令
killall -s HUP nginx #重载配置
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事件配置
events {
use epoll; #使用epoll模型
worker_connections 4096; #每进程处理4096个连接
}
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
[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
/usr/local/sbin/php-fpm
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应用系统