Nginx安装部署!
安装Nginx方法一:利用u盘导入Nginx软件包
二nginx -t 用于检测配置文件语法
如下报错1:配置文件43行出现错误
[root@www ~]# nginx -t
nginx: [emerg] "location" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:43
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
如下错误2:worker里面工作区出现问题
[root@www ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: [warn] 10240 worker_connections exceed open file resource limit: 1024
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
解决办法:
[root@www ~]# ulimit -n 10240
main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。
main块设置的指令将影响其他所有设置;
server块的指令主要用于指定主机和端口;
upstream指令主要用于负载均衡,设置一系列的后端服务器;
location块用于匹配网页位置。
=============================================================
创建单个基于域名的虚拟主机并测试
[root@localhost ~]# rpm -q httpd //有httpd软件必须删除
未安装软件包 httpd
安装支持软件
[root@localhost ~]# rpm -q gcc gcc-c++ zlib-devel pcre-devel make
[root@localhost ~]# yum -y install gcc gcc-c++ zlib-devel pcre-devel make
完毕!
创建运行用户、组
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tail -l /etc/passwd ;tail -l /etc/group
导入nginx软件包
[root@localhost ~]# rz -E
rz waiting to receive.
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg nginx-1.16.0.tar.gz original-ks.cfg
[root@localhost ~]# tar xf nginx-1.16.0.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/nginx-1.16.0/
编译安装 Nginx
[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-stream --with-http_gzip_static_module && make && make install
--prefix 设定Nginx的安装目录
--user和--group 指定Nginx运行用户和组
--with-http_stub_status_module 启用http_stub_status_module模块以支持状态统计
--with-http_ssl_module 启用SSL模块
--with-http_flv_module 启用FLV模块,提供寻求内存使用基于时间的偏移量文件
--with-stream 用于做七层,四层负载的模块
[root@localhost nginx-1.16.0]# cd
为主程序 nginx 创建链接文件
[root@localhost ~]# ls /usr/local/nginx/
conf html logs sbin
[root@localhost ~]#ln -sf /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost ~]# ll /usr/local/sbin/nginx
lrwxrwxrwx. 1 root root 27 9月 10 17:12 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
Nginx 的运行控制方法
手动方法控制 Nginx:
nginx -t 检测配置文件语法
执行 nginx 主程序启动 Nginx
编写 nginx 服务脚本
[root@localhost ~]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server Control Scripts shell
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx
Nginx 修改主配置文件
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# cp nginx.conf nginx.conf.origin
[root@localhost conf]# vim nginx.conf
user nginx nginx; //nginx的程序账户及程序组 worker_processes 2; //指定进程数一般与cpu数量一致 worker_cpu_affinity 00000001 00000010; //为每个进程分配核心数 error_log logs/error.log info; //全局错误日志文件位置 pid logs/nginx.pid; //PID文件的位置 events { use epoll; //使用epoll模型 worker_connections 10240; //每个进程允许的最多的连接数默认为1024一般10000以下 } 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; //支持文件发送超时 keepalive_timeout 65; server { //web服务的监听配置 listen 80; //监听地址及端口(IP:PORT)
server_name localhost; //网站名称(FQDN)
charset utf-8; //网页的默认字符集
access_log logs/localhost.access.log main; location / { //根目录配置
root html; //网站根目录的位置安装位置的html中
index index.html index.htm; //默认首页
}
error_page 500 502 503 504 /50x.html; //内部错误的反馈页面
location =/50x.html { //错误页面配置
root html;
}
}
}
[root@localhost ~]# nginx -t //检测语法错误
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# nginx //启动nginx服务
[root@localhost ~]# killall -HUP nginx
[root@localhost ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 64726/nginx: master
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
nginx安装完成
安装Nginx方法二:
从官网下载相应的源码包:
Nginx下载地址:http://nginx.org/en/download.html
[root@localhost ~]#wget http:;//nginx.org/download/nginx-1.14.2.tar.gz
[root@localhost ~]#tar xf nginx-1.14.2.tar.gz -C /usr/src
[root@localhost ~]#cd /usr/src/nginx-1.14.2
[root@localhost nginx-1.14.2]#yum install gcc gcc-c++ make zlib-devel pcre-devel -y
[root@localhost nginx-1.16.0]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
&& make && make install
[root@localhost nginx-1.17.4]# cd /usr/share/vim/vimfiles/ //拷入相应的语法
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf
user nginx nginx; //nginx的程序账户及程序组 worker_processes 2; //指定进程数一般与cpu数量一致 worker_cpu_affinity 00000001 00000010; //为每个进程分配核心数 error_log logs/error.log info; //全局错误日志文件位置 pid logs/nginx.pid; //PID文件的位置 events { use epoll; //使用epoll模型 worker_connections 10240; //每个进程允许的最多的连接数默认为1024一般10000以下 } 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; //支持文件发送超时 keepalive_timeout 65; server { //web服务的监听配置 listen 80; //监听地址及端口(IP:PORT) server_name localhost; //网站名称(FQDN) charset utf-8; //网页的默认字符集 access_log logs/localhost.access.log main; location / { //根目录配置 root html; //网站根目录的位置安装位置的html中 index index.html index.htm; //默认首页 } error_page 500 502 503 504 /50x.html; //内部错误的反馈页面 location =/50x.html { //错误页面配置 root html; } } }