Nginx的配置详解
Nginx是⼀款轻量级的HTTP服务器,采⽤事件驱动的异步⾮阻塞处理⽅式框架,这让其具有极好的IO性能,时常⽤于服务端的反向代理和负载均衡。
Nginx的优点
linux离线安装nginx详细教程⽀持海量⾼并发:采⽤IO多路复⽤epoll。官⽅测试Nginx能够⽀持5万并发链接,实际⽣产环境中可以⽀撑2-4万。
内存消耗少:在主流的服务器中Nginx⽬前是内存消耗最⼩的了,⽐如我们⽤Nginx+PHP,在3万并发链接下,开启10个Nginx进程消耗150M内存。
免费使⽤可以商业化:Nginx为开源软件,采⽤的是2-clause BSD-like协议,可以免费使⽤,并且可以⽤于商业。
配置⽂件简单:⽹络和程序配置通俗易懂,即使⾮专业运维也能看懂。
环境:
VM虚拟机 Centos7.4 64位版本
Xshell 6终端模拟软件
1、Nginx版本说明
Mainline version :开发版,主要是给⼴⼤Nginx爱好者,测试、研究和学习的,但是不建议使⽤于⽣产环境。
Stable version : 稳定版,也就是我们说的长期更新版本。这种版本⼀般⽐较成熟,经过长时间的更新测试,所以这种版本也是主流版本。
legacy version : 历史版本,如果你需要以前的版本,Nginx也是有提供的。
我的系统已经安装了Nginx,可以使⽤如下命令进⾏版本检测:
[root@localhost ~]# nginx -v
如果出现以下内容说明nginx安装成功
[root@localhost ~]# nginx -v
nginx version: nginx/1.14.0
如果你的linux系统中没有安装nginx,或者不是最新的版本,那我们可以⾃⾏配置yum源,下⾯是官⽹提供的源,我们可以放⼼使⽤。
[nginx]
name=nginx repo
baseurl=/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
复制上⾯的代码,然后在终端⾥⾯输⼊:
vim /pos.po
然后把代码复制进去,这⾥需要vim操作。赋值完成后,你需要修改⼀下对应的操作系统和版本号,因为我的是centos和7的版本,所以改为这样。
baseurl=/packages/centos/7/$basearch/
你可以根据你的系统或需要的版本进⾏修改。如果都已经准备好了,那就可以开始安装了,安装的命令⾮常简单:
yum install nginx
安装完成后,你就可以来检测⼀下nginx版本了。
2、Nginx基本配置⽂件详解
安装完成nginx之后,想知道系统中多了哪些⽂件,安装到了哪⾥,我们可以使⽤下⾯的命令进⾏查看:
rpm -ql nginx
rpm 是linux的rpm包管理⼯具,-q 代表询问模式,-l 代表返回列表,这样我们就可以到nginx的所有安装位置了。
[root@localhost ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/
etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.f
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/pes
/etc/nginx/modules
/etc/f
/etc/nginx/s
/etc/nginx/uwsgi_params
/
etc/nginx/win-utf
/etc/rc.d/init.d/nginx
/etc/rc.d/init.d/nginx-debug
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.14.0
/usr/share/doc/nginx-1.14.0/COPYRIGHT
/
usr/share/man/man8/
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
nginx⽂件是Nginx的总配置⽂件,在我们搭建服务器时经常调整的⽂件。
使⽤如下命令打开f⽂件
vim /etc/f
下⾯是⽂件的注释
# 运⾏⽤户,默认是nginx,可以不进⾏设置
user  nginx;
#Nginx进程,⼀般设置和cpu核数⼀样
1;
#错误⽇志存放位置
error_log  /var/log/nginx/error.log warn;
#进程pid存放位置
pid        /var/run/nginx.pid;
events {
worker_connections  1024;#单个后台进程的最⼤并发数
}
http {
include      /etc/pes;#⽂件扩展名和类型映射表
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  /var/log/nginx/access.log  main;#nginx访问⽇志的存放位置
sendfile        off;#是否开启⾼效传输模式 on开启 off关闭
#tcp_nopush    on;#减少⽹络报⽂段的数量
keepalive_timeout  65; #保持连接的时间,也叫超时时间
#gzip  on;#开启gzip压缩模式
include /etc/nginx/conf.d/*.conf;#包含的⼦配置项的位置和⽂件
}
在f配置项⽂件⾥⾯的最后⼀⾏,我们打开inclue⼦⽂件⽬录⾥⾯都是些什么内容,⾥⾯有些配置⽂件是我⾃⼰新建的。[root@localhost conf.d]# ls
然后使⽤f进⾏查看
server {
listen      80;  #配置监听端⼝
server_name  localhost;  //配置域名
#charset koi8-r;
#access_log  /var/log/nginx/host.access.log  main;
location / {
root  /usr/share/nginx/html;    #服务默认启动⽬录
index  index.html index.htm;    #默认访问⽂件
}
#error_page  404              /404.html;  # 配置404页⾯
# redirect server error pages to the static page /50x.html
#
error_page  500 502 503 504  /50x.html;  #错误状态码的显⽰页⾯,配置后需要重启
location = /50x.html {
root  /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#      127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#    root          html;
#    fastcgi_pass  127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        ;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#    deny  all;
#}
}
明⽩了这些配置项,我们知道我们的服务⽬录放在了/usr/share/nginx/html下,可以使⽤命令进⼊看⼀下⽬录下的⽂件。
[root@localhost html]# ls
50x.html  index.html
到这⾥我们的nginx服务器已经可以为html提供服务器了。我们可以打开浏览器,访问ip地址试⼀试。
3、Nginx服务启动、停⽌、重启
启动nginx服务
默认情况下,nginx是不会⾃动启动的,需要我们⼿动启动。在centos7版本⾥⾯,我们可以直接使⽤nginx命令进⾏启动服务,如果不⾏,那就要使⽤其他的命令启动了,我这⾥只使⽤nginx命令
nginx
输⼊命令后,没有任何提⽰,那我们如何知道Nginx服务已经启动了哪?可以使⽤Linux的组合命令,进⾏查询服务的运⾏状况。
[root@localhost ~]# ps aux |
root      2056  0.0  0.4  49816  4092 ?        Ss  Nov01  0:00 nginx: master process /usr/sbin/ /etc/f
nginx    2548  0.0  0.3  49820  3312 ?        S    Nov01  0:00 nginx: worker process
root      6433  0.0  0.0 103260  840 pts/0    S+  11:19  0:00 grep nginx
如果出现以上的内容,说明我们的Nginx被正常开启了。
停⽌Nginx服务的四种⽅法
⽴即停⽌服务:
nginx -s stop
这个⽅法强硬,⽆论是否在⼯作,都直接停⽌进程
从容停⽌服务:
nginx -s quit
这种⽅法较stop相⽐就⽐较温和⼀些了,需要进程完成当前⼯作后再停⽌。
killall杀死进程:
这种⽅法也是⽐较野蛮的,我们直接杀死进程,但是在上⾯使⽤没有效果时,我们⽤这种⽅法还是⽐较好的。
killall nginx
systemctl停⽌:
systemctl stop nginx.service
重启nginx服务:
nginx -s reopen
或者
systemctl restart nginx.service
重新载⼊配置⽂件,在修改了配置⽂件之后,都需要进⾏这个操作,才能⽣效
nginx -s reload
查看端⼝号
在默认情况下,Nginx启动后会监听80端⼝,从⽽提供HTTP访问,如果80端⼝已经被占⽤则会启动失败。我么可以使⽤netstat -tlnp命令查看端⼝号的占⽤情况。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。