centos 安装和配置 nginx

nginx

install on RHEL/CentOS

Install the prerequisites:

sudo yum install yum-utils

To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

By default, the repository for stable nginx packages is used. If you would like to use mainline nginx packages, run the following command:

sudo yum-config-manager --enable nginx-mainline

To install nginx, run the following command:

sudo yum install nginx

When prompted to accept the GPG key, verify that the fingerprint matches 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62, and if so, accept it.

remove nginx

yum remove nginx

配置文件

  • main:用于进行 nginx 全局信息的配置
  • events:用于 nginx 工作模式的配置
  • http:用于进行 http 协议信息的一些配置
  • server:用于进行服务器访问信息的配置
  • location:用于进行访问路由的配置
  • upstream:用于进行负载均衡的配置

main 模块

观察下面的配置代码

# user nobody nobody;
worker_processes 2;
# error_log logs/error.log
# error_log logs/error.log notice
# error_log logs/error.log info
# pid logs/nginx.pid
worker_rlimit_nofile 1024;

上述配置都是存放在 main 全局配置模块中的配置项

  • user 用来指定 nginx worker 进程运行用户以及用户组,默认 nobody 账号运行
  • worker_processes 指定 nginx 要开启的子进程数量,运行过程中监控每个进程消耗内存(一般几 M~几十 M 不等)根据实际情况进行调整,通常数量是 CPU 内核数量的整数倍
  • error_log 定义错误日志文件的位置及输出级别【debug / info / notice / warn / error / crit】
  • pid 用来指定进程 id 的存储文件的位置
  • worker_rlimit_nofile 用于指定一个进程可以打开最多文件数量的描述

event 模块

event {
    worker_connections 1024;
    multi_accept on;
    use epoll;
}

上述配置是针对 nginx 服务器的工作模式的一些操作配置

  • worker_connections 指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和 worker processes 共同决定的。
  • multi_accept 配置指定 nginx 在收到一个新连接通知后尽可能多的接受更多的连接
  • use epoll 配置指定了线程轮询的方法,如果是 linux2.6+,使用 epoll,如果是 BSD 如 Mac 请使用 Kqueue

http 模块

作为 web 服务器,http 模块是 nginx 最核心的一个模块,配置项也是比较多的,项目中会设置到很多的实际业务场景,需要根据硬件信息进行适当的配置,常规情况下,使用默认配置即可。

server 模块

srever 模块配置是 http 模块中的一个子模块,用来定义一个虚拟访问主机,也就是一个虚拟服务器的配置信息

核心配置信息如下:

  • server:一个虚拟主机的配置,一个 http 中可以配置多个 server
  • server_name:用力啊指定 ip 地址或者域名,多个配置之间用空格分隔
  • root:表示整个 server 虚拟主机内的根目录,所有当前主机中 web 项目的根目录
  • index:用户访问 web 网站时的全局首页
  • charset:用于设置 www/路径中配置的网页的默认编码格式
  • access_log:用于指定该虚拟主机服务器中的访问记录日志存放路径
  • error_log:用于指定该虚拟主机服务器中访问错误日志的存放路径

location 模块

location 模块是 nginx 配置中出现最多的一个配置,主要用于配置路由访问信息

在路由访问信息配置中关联到反向代理、负载均衡等等各项功能,所以 location 模块也是一个非常重要的配置模块

基本配置

location / {
    root    /nginx/www;
    index    index.php index.html index.htm;
}
  • location /:表示匹配访问根目录
  • root:用于指定访问根目录时,访问虚拟主机的 web 目录
  • index:在不指定访问具体资源时,默认展示的资源文件列表

使用

First enable nginx service by running systemctl command so that it start at server boot time:

$ sudo systemctl enable nginx
  • Start Nginx command
$ sudo systemctl start nginx
  • Stop Nginx command
$ sudo systemctl stop nginx
  • Restart Nginx command
$ sudo systemctl restart nginx

Find status of Nginx server command

$ systemctl status nginx

How to install and use Nginx on CentOS 7 / RHEL 7

发布了3 篇原创文章 · 获赞 0 · 访问量 20
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览