可以先做网站后备案吗,南通网站建设空间,公司名称大全二字,wordpress配置cdn缓存规则1 Nginx服务基础
Nginx#xff08; 发音为#xff3b;engine x] ) 专为性能优化而开发#xff0c;其最知名的优点是它的稳定性和低系 统资源消耗#xff0c; 以及对HTTP 并发连接的高处理能力#xff08;单台物理服务器可支持30000~50000 个并发请求#xff09; 。正因为…1 Nginx服务基础
Nginx 发音为engine x] ) 专为性能优化而开发其最知名的优点是它的稳定性和低系 统资源消耗 以及对HTTP 并发连接的高处理能力单台物理服务器可支持30000~50000 个并发请求 。正因为如此 大矗提供社交网络、新闻资讯、电子商务及虚拟主机等服务 的企业纷纷选择Ngi nx 来提供Web 服务。
1.1 Nginx 1.12 安装及运行控制
1. 编译安装Nginx
( 1 ) 安装支持软件
Nginx 的配置及运行需要pcre 、zlib 等软件包的支持 因此应预先安装这些软件的开发 包 devel ) , 以便提供相应的库和头文件确保Nginx 的安装顺利完成。 [rootlocalhost ~]#yum -y install pcre-devel zlib-devel gcc gcc ( 2 ) 创建运行用户、组 Nginx 服务程序默认以nobody 身份运行建议为其创建专门的用户账号以便更准确 地控制其访问权限增加灵活性、降低安全风险。例如创建一个名为nginx 的用户不建 立宿主文件夹 也禁止登录到Shell 环境。 [rootlocalhost ~]#yum -y install pcre-devel zlib-devel gcc gcc ( 3 ) 编译安装Nginx 配置Nginx 的编译选项时 将安装目录设为/usr/local/nginx运行用户和组均设为nginx: 启用http_stub_status_m odule 模块以支持状态统计 便于查看服务器的连接信息。 [rootlocalhost ~]# tar zxf nginx-1.12.0.tar.gz [rootlocalhost ~]#cd nginx-1.12.0 [rootlocalhost nginx-1 .12.0]#./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_stub_status_module [rootlocalhost nginx-1 .12.0]# makemake install 为了使Nginx服务器的运行更加方便可以为主程序nginx创建链接文件 以便管理员 直接执行“ ngi nx ”命令就可以调用Nginx的主程序。
2. Nginx 的运行控制
( 1 ) 检查配置文件 与Apache 的主程序httpd 类似 Ngi nx 的主程序也提供了“-t”选项用来对配置文件进行检查 以便找出不当或错误的配置。配置文件ngi nx .conf 默认位于安装目录下的conf/子目录中。若要检查位千其他位置的配置文件 可使用“-c”选项来指定路径。
( 2 ) 启动、停止Nginx
直接运行Nginx 即可启动Nginx 服务器 这种方式将使用默认的配置文件 若要改用其他配置文件 需添加“-c 配置文件路径”选项来指定路径。需要注意的是 若服务器中已装有httpd 等其他Web 服务软件 应采取措施修改端口、停用或卸载避免冲突。
通过检查Nginx 程序的监听状态 或者在浏览器中访问此Web 服务 默认页面将显示Welcome to nginx! ) , 可以确认Ngi nx 服务是否正常运行。 主程序Nginx 支待标准的进程信号 通过KILL 或killall 命令发送HUP 信号表示重载配置QUIT 信号表示退出进程 KILL 信号表示杀死进程。例如 若使用ki llall 命令 重载配置、停止服务的操作分别如下所示通过“-s”选项指定信号种类。 [rootlocalhost ~]#killall -s HUP nginx //选项s HUP 等同千 1 [rootlocalhost ~]#killall -s QUIT nginx //选项s QUIT 等同千3 当Nginx 进程运行时 PID 号默认存放在logs 目录下的nginx . pid 文件中 因此若改用KILL 命令 也可以根据ngi nx . p id 文件中的P ID 号来进行控制。
( 3 ) 添加Nginx 系统服务
为了使Nginx 服务的启动、停止、重载等操作更加方便 可以编写Ngi nx 服务脚本并使用ch kconfig 和systemctl 工具来进行管理也更加符合CentOS7.3 系统的管理习惯。 [rootlocalhost ~]# vim /etc/init.d/nginx #!/bin/bash #chkconfig: - 99 20 #description:Nginx Service Control Script PROG/usr/local/nginx/sbin/nginx PIDF/usr/local/nginx/logs/nginx.pid case $1 in start) $PROG ;; stop) pkill nginx ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) ;; *) echo Usage: $0 {start|stop|restart|reload} exit 1 esac exit 0 [rootlocalhost ~]# chmod x /etc/init.d/nginx [rootlocalhost ~]# chkconfig --add nginx [rootlocalhost ~]# systemctl status nginx 1.2:配置文件nginx.conf
1. 全局配置
由各种配置语句组成 不使用特定的界定标记。全局配置部分包括Nginx 服务的运行用户、工作进程数、错误日志、PIO 存放位置等基本设置。 #user nobody; ##运行用户 worker_processes 1; ##工作进程数量 #error_log logs/error.log; ##错误日志文件的位置 #pid logs/nginx.pid; ##PID 文件的位置 2. I/0 事件配置 events { use epoll; ##使用 epoll 模型 worker_connections 4096; ##每进程处理 4096 个连接 } 3. HTTP 配置 [rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf 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 { listen 80; server_name www.benet.com; charset utf-8; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location /50x.html { root html; } } } 1.3访问状态统计
Nginx 内置了HTTP_STUB_STATUS 状态统计模块 用来反馈当前的Web 访问情况。配置编译参数时可添加with-http_stub_status_module 来启用此模块支待 可以使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的Nginx 是否包含HTTP_STUB_STATUS 模块。 要使用Nginx 的状态统计功能 除了启用内建模块以外 还需要修改nginx. conf 配置文件 指定访问位置并添加stub_status 配置代码。 location /status { stub_status on; access_log off; } 2 LNMP 架构部署及应用
2.1构建LNMP网站平台
1. 安装MySQL 服务
2. 安装PHP解析环境
新版本的PHP 如5. 5 版本已经自带FPM ( FastCGI Process Manager, FastCGI进程管理器 模块 用来对PHP 解析实例进行管理、优化解析效率。单服务器的LNMP 架构通常使用这种方式 因此在配置PHP 编译选项时应添加“”--enable-fp m” 以启用此模块。 以源码包PHP-5 . 5. 38 为例 具体安装过程如下。为了提高PHP 解析效率 建议将相应版本的Zend G ua 「dloade r 也装上
(1) 编译安装PHP [rootlocalhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel [rootlocalhost ~]#tar -zxvf php-5.5.38.tar.gz [rootlocalhost ~]#cd php-5.5.38/ [rootlocalhost 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 libxml2-devellibxml是一个用来解析XML文档的函数库libjpeg-devel #是一个完全用C语言编写的库包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现 libpng-devel #libpng 是一套免费的、公开源代码的程序库支持对 PNG 图形文件的创建、读写等操作 GD指的是Graphic DevicePHP的GD库是用来处理图形的扩展库通过GD库提供的一系列API可以对图像进行处理或者直接生成新的图片。PHP除了能进行文本处理以外通过GD库可以对JPG、PNG、GIF、SWF等图片进行处理zlib-devel #Zlib是一个压缩和解压模块
2安装后调整 [rootlocalhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini [rootlocalhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/ [rootlocalhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/ 3安装 ZendGuardLoader [rootlocalhost ~]# tar -zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz [rootlocalhost ~]# cd zend-loader-php5.5-linux-x86_64/ [rootlocalhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/ [rootlocalhost zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini 添加下列内容 zend_extension/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable1 3. 配置Nginx 支持PHP 环境
若要让Nginx 能够解析PHP 网页 有两种方法可以选择 其一 充当中介 将访问PHP页面的Web 请求转交给其他服务器( LAM P ) 去处理其二 通过使用PH P 的FPM 模块来调用本机的PHP 环境。
( 1) 启用php-fpm 进程
如果选用fpm 方式 则需要先启动ph p-fpm 进程以便监听p hp 解析请求。参考范例建立php-fpm. conf 配置文件 并修改其中的P I O 文件、运行用户、服务数进程数量等相关设置然后启动p hp-fp m 程序即可默认监听本机的9000 端口
在php-fpm.conf 文件中pid 配置行指出了PID 信息的存放位置 对应的实际路径为/usr/local/php 5/var/run/ph p-fpm . pid 。根据上述信息 可以修改Nginx 服务脚本 以便启动/停止Nginx 服务器时将ph p-fpm 进程也自动启停。 [rootlocalhost ~]# cd /usr/local/php5/etc/ [rootlocalhost etc]# cp php-fpm.conf.default php-fpm.conf [rootlocalhost etc]# useradd -M -s /sbin/nologin php [rootlocalhost etc]# vim php-fpm.conf pid run/php-fpm.pid user php group php pm.max_children 50 ##最多子进程数 pm.start_servers 20 ##启动时开启的进程数 pm.min_spare_servers 5 ##最少空闲进程数 pm.max_spare_servers 35 ##最多空闲进程数 [rootlocalhost etc]# /usr/local/sbin/php-fpm [rootlocalhost etc]# netstat -anpt | grep php-fpm [rootlocalhost etc]# vim /etc/init.d/nginx #!/bin/bash #chkconfig: - 99 20 #description:Nginx Service Control Script PROG/usr/local/nginx/sbin/nginx PIDF/usr/local/nginx/logs/nginx.pid PROG_FPM/usr/local/sbin/php-fpm PIDF_FPM/usr/local/php5/var/run/php-fpm.pid case $1 in start) $PROG $PROG_FPM ;; stop) pkill nginx pkill php-fpm ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) kill -s HUP $(cat $PIDF_FPM) ;; *) echo Usage: $0 {start|stop|restart|reload} exit 1 esac exit 0 [rootlocalhost ~]# systemctl daemon-reload [rootlocalhost ~]# systemctl restart nginx ( 2 ) 配置Nginx 支持PHP 解析
无论是将PHP 页面交给LAMP 服务去解析 还是调用本机的ph p-fpm 进程进行解析都需要在“serve{配置段中添加location 设置 以便指定当访问php 页面时采取何种操作。 对于第一种方法 转给其他Web 服务器处理 使用的配置语句如下所示。例如 交给IP 地址为192 .168. 1 . 22 的LAMP 服务器处理 从而实现由Nginx 负责处理静态页面LAMP 负责动态页面的分离效果。 [rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf Server{ root /var/www/kgc/bbs; location ~ \.php$ { proxy_pass http://192.168.10.101:80; } } 对于第二种方法 调用本机的p hp-fpm 进程 使用的配置语句如下所示。 [rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf Server{ listen 80; server_name www.bt.com; location / { root /var/www/html; index index.html index.htm index.php; } location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } } ( 3) PHP 页面访问测试
2.2在LNMP平台中部署Web应用
1. 下载并部署程序代码
Discuz ! 社区论坛 是一个采用PHP 与mysq l 等多种数据库构建的性能优异 功能全面且安全稳定的社区论坛( BBS ) 软件 其官方网站为www. discuz . net 。 将下载的D iscuz 源码文件解压 找到其中的upl oad 文件夹并将其放置到LN M P 服务器的网站根目录 然后适当调整权限 若此处不调整 也可以参考安装页面的提示再调整 以允许Nginx 、ph p-fpm 程序拥有必要的写入权限。 [rootlocalhost ~]# yum -y install unzip [rootlocalhost ~]# unzip Discuz_X3.3_SC_UTF8.zip [rootlocalhost ~]# mkdir -p /var/www/html/bbs [rootlocalhost ~]# mv upload/* /var/www/html/bbs [rootlocalhost ~]# chown -R php:php /var/www/html/bbs/ 2创建数据库
D iscuz 论坛中的帖子、板块等信息需要保存在数据库中 所以要针对Discuz 创建数据 库。为了降低Web 应用程序对数据库的风险 建议设置专用的数据库及授权用户 而不要 直接使用root 用户。例如 可以新建bbs 库、授权用户为runbbs, 操作如下所示。 [rootlocalhost ~]# mysql -uroot -p mysqlcreate database bbs; mysqlgrant all on bbs.* to runbbs127.0.0.1 identified by bbs123; mysqlgrant all on bbs.* to runbbslocalhost identified by bbs123; 3. 安装Web 应用
访问服务器U RL 地址 将会打开Discuz 的安装程序 根据页面提示只需要三部即可轻松完成安装
4. 访问Web 应用系统
完成安装后 通过访问http:/1192 . 168 .9.237/bbs/forum. p hp, 可以看到Discuz 社区论坛站点首页 如图5.3 所示 通过访问http:/1192 . 168.9.237/bbs/adm in . ph p 并以管理员账号登录后 可以进入管理后台。