Centos 7 安装配置 Nginx

2020-04-04  本文已影响0人  gsunneverdie

安装

使用RepoForge仓库
清华源:Repoforge (原Rpmforge) 镜像使用帮助

sudo yum install -y nginx

相关配置目录位置

# 指令查看nginx 安装到哪些目录
rpm -ql nginx
/usr/share/nginx/html  # 默认的网站目录 
/etc/nginx/nginx.conf  # 默认的配置文件
/etc/nginx/conf.d/     # 自定义配置文件目录

宝塔中相关配置目录位置

/www/server/nginx/conf/nginx.conf # 多域名Nginx配置文件
/www/server/panel/vhost/nginx/你的域名.conf   # 主配置文件nginx.conf,会将多域名的配置引入

配置文件相关

相关引用 Centos下 Nginx安装与配置

Nginx 配置文件常见结构:

由外到内 http, server, location

Server

接收请求的服务器需要将不同的请求规则转发到不同的后端服务器上,在nginx 中我们可能通过构建虚拟主机server的概念来将这些不同的服务配置隔离

server {
    listen       80; # 监听端口
    server_name  localhost; # 指定IP或域名
    root   html; # 指定虚拟主机的网页根目录
    index  index.html index.htm; # 设定访问的默认首页地址
}

当多个server时,建议将不同的虚拟主机的配置写在另一个配置文件中,然后通过在主配置nginc.conf中用include指令加载进来
也可以直接将文件放到自定义配置目录/etc/nginx/conf.d中,然后会默认加载进来

Location

每个url 请求都会对应一个服务,nginx 进行处理转发或者是本地的一个文件路径,或者是其它服务器的一个服务路径,而这个路径的匹配是通过location来进行的

匹配规则
~  # 波浪线表示执行一个正则匹配,区分大小写
~* # 表示执行一个正则匹配,不区分大小写
^~ # ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
=  # 进行普通字符精确匹配
location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何请求,因为所有请求都是以"/"开始
  # 但是更长字符匹配或者正则表达式匹配会优先匹配
  [ configuration B ] 
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配以 gif, jpg, or jpeg结尾的请求. 
  # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.   
  [ configuration D ] 
}

请求:
/ -> 符合configuration A
/documents/document.html -> 符合configuration B
/images/1.gif -> 符合configuration C
/documents/1.jpg ->符合 configuration D
转发

将请求转称到另一服务器, 端口 8001

location / {
    proxy_pass 172.16.1.1:8001;
}
负载均衡
upstream myserver; { # 指定一组机器,组命名为myserver
    ip_hash;
    server 172.16.1.1:8001;
    server 172.16.1.2:8002;
    server 172.16.1.3;
    server 172.16.1.4;
}
location / {
    proxy_pass http://myserver; # 转发
}
上一篇下一篇

猜你喜欢

热点阅读