yum-yinstall\ |
pcre-devel\ |
zlib-devel//安装Nginx必备插件 |
useradd-M-s/sbin/nologinnginx//创建程序用户nginx,不能登录,没有家目录 |
|
tarxzvfnginx-1.13.9.tar.gz |
cdnginx-1.13.9 |
|
./configure\ |
--prefix=/usr/local/nginx\ |
--user=nginx\ |
--group=nginx\ |
--with-http_stub_status_module//日志分析模块 |
|
make&&makeinstall编译及安装 |
|
ln-s/usr/local/nginx/sbin/nginx/usr/local/sbin///为nginx可执行程序做软连接,让系统可识别 |
nginx-t//检查nginx配置文件语法 |
nginx//启动服务 |
killall-1nginx//安全重启 |
killall-3nginx//停止服务 |
|
下面制作nginx系统服务管理脚本 |
vi/etc/init.d/nginx |
#!/bin/bash |
#chkconfig:359920//3,5级别自动运行,第99个进程开启,第20个进程结束 |
#description:NginxServiceControlScript |
PROG="/usr/local/nginx/sbin/nginx" |
PIDF="/usr/local/nginx/logs/nginx.pid" |
case"$1"in |
start) |
$PROG |
;; |
stop) |
kill-sQUIT$(cat$PIDF) |
;; |
restart) |
$0stop |
$0start |
;; |
reload) |
kill-sHUP$(cat$PIDF) |
;; |
*) |
echo"Usage:$0{start|stop|restart|reload}" |
exit1 |
esac |
exit0 |
|
chmod+x/etc/init.d/nginx//给管理脚本添加执行权限 |
chkconfig--addnginx//将nginx添加到chkconfig系统管理工具中 |
|
下面对nginx配置文件进行初始配置 |
vi/usr/local/nginx/conf/nginx.conf |
usernginxnginx;//修改nginx启动进程的属主和属组 |
worker_processes1;//CPU核数,几核便设为几 |
error_loglogs/error.loginfo;//修改错误日志的级别 |
日志级别共有这几种:debuginfonoticewarnerrorcrit其中规则是向上记录,即info级别的日志会涵盖noticewarnerrorcrit,低级的包涵高级的 |
events{ |
useepoll;//新增此行,使用epoll模式运行,默认使用的是select/poll模式 |
worker_connections1024;//表示1个进程允许1024个连接,如果设置超过1024则需要修改ulimit上限,否则报错 |
} |
log_formatmain//定义日志格式把前面的#号去掉 |
配置完之后重启,现在nginx服务器已经可以支持访问
|
|
|
|
|
|
|
|
|
|
ulimit-n65500//查看和更改系统本地打开资源数 |
ulimit-n65500>>/etc/rc.local |
|
下面我们可以配置nginx自带的日志统计模块 |
vi/usr/local/nginx/conf/nginx.conf |
location~/status{ |
stub_statuson;//日志统计模块开启 |
access_logoff; |
}//在server模块里的error_page上面增加 |
servicenginxreload |
http://IP/status//当前的活动连接数,已处理的连接数,成功的TCP握手次数,已处理的请求数。 |
|
|
|
|
|
|
可以配置nginx的访问控制功能了 |
yuminstallhttpd-tools//安装apache的工具,借助工具创建访问用户 |
htpasswd-c/usr/local/nginx/passwd.dbjack//创建数据库验证文件,并把jack用户添加进去 |
chmod400/usr/local/nginx/passwd.db//提高数据安全性 |
chownnginx/usr/local/nginx/passwd.db//更改属主 |
|
vi/usr/local/nginx/conf/nginx.conf |
location/{ |
roothtml; |
indexindex.htmlindex.htm; |
allow192.168.80.0/24;//允许80段的访问该主页 |
denyall; |
auth_basic"secret"; |
auth_basic_user_file/usr/local/nginx/passwd.db;//注意这边的文件必须与上面创建的数据库验证文件统一 |
} |
|
servicenginxrestart |
|
|
|
|
|
|
|
|
|
|
|
|
|
再次访问需要输入用户名和密码 |
|
下面搭建虚拟主机 |
1.基于域名的虚拟主机 |
vi/usr/local/nginx/conf/nginx.conf//在最后一行上面插入 |
server{ |
listen80; |
server_namewww.aa.com;//虚拟主机名 |
charsetutf-8; |
access_loglogs/aa.access.logmain; |
location/{ |
root/var/www/aa; |
indexindex.htmlindex.htm; |
error_page500502503504/50x.html; |
location=/50x.html{ |
roothtml; |
} |
} |
} |
server{ |
listen80; |
server_namewww.bc.com; |
charsetutf-8; |
access_loglogs/bc.access.logmain; |
location/{ |
root/var/www/bc; |
indexindex.htmlindex.htm; |
error_page500502503504/50x.html; |
location=/50x.html{ |
roothtml; |
} |
} |
} |
mkdir/var/www/aa-p |
mkdir/var/www/bc |
vi/var/www/aa/index.html |
vi/var/www/bc/index.html//编辑主页测试 |
在两个虚拟主机的网站目录添加主页 |
下面搭一个DNS服务器进行域名解析,这边自己搭过,不做详细说明 |
下面进行测试 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2.基于端口的虚拟主机 |
vi/usr/local/nginx/conf/nginx.conf |
listen192.168.80.181:80;//修改虚拟主机的配置文件 |
listen192.168.80.181:8080; |
http://192.168.80.181:80//访问 |
|
|
|
|
|
|
http://192.168.80.181:8080/ |
|
|
|
|
|
|
|
安装PHP |
yum-yinstall\ |
libjpeg\ |
libjpeg-devel\ |
libpnglibpng-devel\ |
freetypefreetype-devel\ |
libxml2\ |
libxml2-devel\ |
zlibzlib-devel\ |
curlcurl-devel\ |
opensslopenssl-devel//安装需要支持的插件 |
|
|
tarxjvfphp-7.1.10.tar.bz2 |
cdphp-7.1.10//解压 |
|
./configure\ |
--prefix=/usr/local/php\ |
--with-mysql-sock=/usr/local/mysql/mysql.sock\ |
--with-mysqli\ |
--with-zlib\ |
--with-curl\ |
--with-gd\ |
--with-jpeg-dir\ |
--with-png-dir\ |
--with-freetype-dir\ |
--with-openssl\//配置协作 |
--enable-mbstring\ |
--enable-xml\ |
--enable-session\ |
--enable-ftp\ |
--enable-pdo\ |
--enable-tokenizer\ |
--enable-zip\//支持压缩 |
--enable-fpm//支持动态页面fpm功能 |
|
cpphp.ini-development/usr/local/php/lib/php.ini//复制php配置文件模板作为php配置文件 |
vi/usr/local/php/lib/php.ini//编辑php配置文件 |
mysqli.default_socket=/usr/local/mysql/mysql.sock//编辑mysql的sock文件位置 |
date.timezone=Asia/Shanghai//选择时区 |
|
/usr/local/php/bin/php-m//验证安装的模块 |
|
-----------配置及优化FPM模块-------- |
cd/usr/local/php/etc/ |
cpphp-fpm.conf.defaultphp-fpm.conf//复制php的fpm模块的配置文件模板为配置文件。php只识别php-fpm.conf为配置文件 |
cd/usr/local/php/etc/php-fpm.d/ |
cpwww.conf.defaultwww.conf//复制fpm的www配置文件模板为配置文件,fpm只识别www.conf的配置文件 |
|
cd/usr/local/php/etc/ |
viphp-fpm.conf//配置fpm模块 |
pid=run/php-fpm.pid//将分号去掉 |
;user=nginx |
;group=nginx//添加user和group |
|
/usr/local/php/sbin/php-fpm-c/usr/local/php/etc/php.ini//启动fpm模块 |
netstat-anpt|grep9000 |
ln-s/usr/local/php/bin/*/usr/local/bin///将php的可执行程序放到系统可识别环境中便于执行 |
psaux|grep-c"php-fpm"//统计进程数 |
|
-----更新启动脚本,让fpm模块也可进行启动管理 |
vi/etc/init.d/nginx |
#!/bin/bash |
#chkconfig:359920 |
#description:NginxServiceControlScript |
PROG="/usr/local/nginx/sbin/nginx" |
PIDF="/usr/local/nginx/logs/nginx.pid" |
PROG_FPM="/usr/local/php/sbin/php-fpm" |
PIDF_FPM="/usr/local/php/var/run/php-fpm.pid" |
case"$1"in |
start) |
$PROG |
$PROG_FPM |
;; |
stop) |
kill-sQUIT$(cat$PIDF) |
kill-sQUIT$(cat$PIDF_FPM) |
;; |
restart) |
$0stop |
$0start |
;; |
reload) |
kill-sHUP$(cat$PIDF) |
&nbs
|