首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

1-Nginx初学者配置

介绍

Nginx有一个主进程和几个工作进程(Worker_processes)。主进程的目的主要是测试读取配置和维护Worker进程。请求由工作进程处理。工作进程的数量在配置文件中定义,一般为CPU核心数。

Nginx及其模块的工作方式都是在配置文件中确定的。默认情况下该配置文件被命令为“nginx.conf”,源码安装一般放置在“安装目录/conf/”,RPM安装一般方式在“/etc/nginx/”。

抄录官方文档:https://nginx.org/en/docs/beginners_guide.html

启动、停止、重新加载配置

要启动Nginx,请运行可执行文件(命令文件)”nginx“。源码安装命令文件一般放置在“安装目录/sbin/”。

----------------------------------------------------------------------------------------------------------

nginx -s stop --关闭服务

nginx -s quit --优雅的关闭服务

nginx -s reload --重新加载配置文件

nginx -s reopen --重新打开日志文件

----------------------------------------------------------------------------------------------------------

配置文件结构

主要配置:配置运行用户、Worker进程数等。

事件配置:配置事件驱动模型(处理请求方式),每个Worker进程的处理请求数等。

HTTP配置:配置HTTP(超文本传输协议),即WEB服务。

虚拟主机:配置WEB站点(虚拟主机),监听地址端口、域名绑定等,允许有多个虚拟主机,即可在一台服务器上发布多个WEB站点。

目录位置:配置WEB站点下的WEB应用(网页)存放位置。匹配URL查询。

了解location

在Nginx,"location { }"定义要发布的目录位置,而location本身是一个匹配请求URi的语句(指令)。如果匹配到则就交由“{ }”处理。

URi:叫统一资源标识符,在Nginx中标识一个资源路径,即“location / { }”,“/”则为URi标识路径,而“{ }”则为定义的内容,即资源。则URi表示URL后面的虚根部分。示例:“http://www.baidu.com/index.html”

location语法:location[链接符号] URi

链接符号

/ :通用匹配,只要是“/”开头的都可以匹配到。

= :精确匹配,只匹配指定URi请求。

^~ :无正则匹配,无正则的匹配的任何指定URi的请求。

~ :区分大小写正则的匹配。

~* :不区分大小写正则的匹配。

示例:

# 匹配任意以“/”开始的请求,如果存在长的URi时则正则匹配优先。

location / {

root html;

index index.html;

}

# 只匹配“/”。

location = / {

root html;

index index.html;

}

# 无正则匹配任何以“/server/”开始的请求,不会再匹配下面的正则“location”部分

location ^~ /server/ {

root html/server;

index index.html;

}

# 区分大小写正则匹配以“.php”结尾的请求。

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

}

# 不区分大小写正则匹配以“.jpg、.png、jpeg、.ico”结尾的请求。

location ~* \.(jpgpngjpegico)$ {

root html/image;

}

发布静态内容

首先创建一个要发布的WEB目录,如“/www/html/”,然后将任意的“index.html”首页静态文件放到目录里面。

然后打开配置文件“nginx.conf”,配置如下(示例):

http {

server {

listen 80;# 指定地址端口,如果无地址则表示使用所有地址

server_name localhost;

location = / {# 匹配“/”请求

root /www/html;# 指定WEB应用(网页)存放目录

index index.html index.htm;# 指定首页文件

}

}

}

设置简单的反向代理服务器

Nginx经过使用的一种方法就是将其设置为反向代理服务器。当客户端(浏览器)请求WEB时,由Nginx代理向后端WEB服务器获取页面数据,然后反馈给客户端。而用户本人并不知道是通过代理访问的WEB,他以为是由Nginx代理提供的WEB。增加了后端真实WEB服务器的安全性。

我们定义两个“location”位置,当用户访问所有数据(包含WEB首页文件)的时候由第一个location定义,由Nginx代理向后端真实WEB服务器获取数据,而当用户访问的是以.jpg、.png格式结尾的图片数据的时候则交由第二个location定义。这样就可以实现数据分离,减轻后端WEB的压力的同时并加快了图片加载速度。

配置示例:

http {

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://192.168.1.10:8080;

# 将所有的请求代理交由后端服务器处理

proxy_set_header Host $host;

# 设置代理请求头部,$host主机名

proxy_set_header X-Real-IP $remote_addr;

# 设置代理请求头部,$remote_addr客户端IP

}

location ~ \.(jpgpng)$ {

root/www/html/image;

}

}

}

设置FastCGi代理

Nginx可用于将请求转发到运行各种框架和编程语言(如:PHP)构建的应用程序的FastCGi服务器。,FastCGi是一种连接外部程序的程序接口,可以与外部程序一直保持连接状态。Nginx的FastCGi代理实际也是一种反向代理方式,通过FastCGi反代PHP,可以实现对动态页面PHP的解析。

配置示例:

http {

server {

listen 80;

server_name localhost;

location / {

root html;

index index.php index.html index.htm;

# 设置“/”位置的首页文件为“index.php”

}

location ~ \.php$ {

fastcgi_pass localhost:9000;

# 设置代理的FastCGi服务器地址,即PHP服务器地址

fastcgi_param SCRIPT_FILENAME/usr/local/nginx/html/php$fastcgi_script_name;

# 设置要传递给FastCGi服务器解析的WEB应用(网页)根目录位置

fastcgi_index index.php;

# 设置FastCGi服务器解析的WEB应用(网页)首页文件

include fastcgi_params;

# 指定Nginx自带的对FastCGi服务器的配置文件,包含FastCGI的基础配置

}

}

}

作用说明:

location作用:

设置“/”位置的首页文件为“index.php”,当用户在浏览器输入“www.baidu.com”的时候,由浏览器自动补全地址“http://www.baidu.com/”,而这个后缀“/”则就表示匹配到了配置文件中的“location/”位置,然后由“location /”提供里面定义的首页文件,这个时候请求的原始的地址(浏览器地址不变)则会变成“http://www.baidu.com/index.php”,则就会被第二个定义的“location~ \.php$”匹配到,进而交由后端的PHP服务器解析处理并返回数据给客户端(浏览器)。

处理过程:

服务端(服务器)处理:http://www.baidu.com/----->http://www.baidu.com/index.php

location匹配过程:

匹配到第一个“location /”:http://www.baidu.com/

匹配到第二个“location ~ \.php$”

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180110G0FNI800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券