一、Nginx在CentOS 7 中的安装与配置位置
-
安装
在centos7系统中通过nginx官方提供的软件源进行安装,待安装完成后需要注意相关文件安装的目录和位置。
我们通过指令whereis nginx
查询到如下目录:
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx
其中我们重点关注/usr/sbin/nginx
和/etc/nginx
目录。
/usr/sbin/nginx:nginx启动命令,通过该文件可以直接启动nginx。
/etc/nginx:该目录下我们重点关心主配置文件nginx.conf,该文件用于配置nginx。当然配置文件支持外部文件引入,目前暂不考虑,仅关心nginx.conf文件即可。
二、nginx.conf配置文件说明
- 配置信息结构
- 全局配置
全局配置默认从第一行配置开始到event之间的内容,主要影响nginx整体运行,所有配置所用于全局。
- event模块
event模块配置主要影响nginx与用户的网络连接。这部分配置对nginx的性能影响较大,应根据实际情况进行配置。
- http模块
http模块是整个nginx的重要组成部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都可以在这个模块中进行配置。
- server模块
server模块的配置相当于定义一个虚拟主机,一个http模块下可以定义多个server模块,每个server模块可以定义自己的主机访问规则。
所有配置分层级嵌套,示例和说明如下:(编写配置信息时应注意;
结尾)
# 全局定义
user nginx;
worker_processes 1; # 全局有效
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
# 局部定义 通过“{}”符号限定作用区域
events {
worker_connections 1024;
}
http {
include /etc/nginx/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 /var/log/nginx/access.log main; #网络请求日志记录文件定义
sendfile on;
#tcp_nopush on;
keepalive_timeout 65; #保持连接时间
#gzip on; #是否开启gzip压缩功能
include /etc/nginx/conf.d/*.conf; # 引用外部配置文件
}
外部配置文件server配置
server {
listen 80; #nginx监听端口设置
server_name localhost; #服务器请求名定义
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main; #请求日志
#请求uri规定定义
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.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$ {
# proxy_pass http://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 fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
- 针对配置文件中的信息进行部分信息说明
-
user nginx;
该指令用于配置运行nginx服务器的用户或用户组,此处为用户nginx拥有运行权限,语法为:
user user [group]
。如果运行用户不存在,则会报错。如果对运行用户不做限制,可以通过
#
注释该行,或者配置user nobody;
-
worker_processes 1;
工作进程数配置,语法:
worker_processes number | auto
number:nginx最多产生的进程数量。
auto:nginx自动检测进程数量。 -
error_log /var/log/nginx/error.log warn;
日志记录,语法:error_log 日志文件位置 日志级别。
-
pid /var/run/nginx.pid;
pid记录文件定义,语法:pid 记录文件位置。
http和server配置在实例代码中通过注解的方式说明。