Nginx的基本安装配置
- 前言
- Centos7使用
yum安装nginx(几乎是直接翻译官方文档中 通过官方nginx的yum仓库在Centos中安装预编译的nginx 这种安装方式) - 升级nginx
- nginx配置文件
- 虚拟主机配置
- 配置文件中可以用的全局变量
- 常用正则
前言
参考官网安装教程, 官网上有各个linux发行版中安装nginx的教程, 推荐看官方的教程安装
Centos7使用 yum 安装nginx(几乎是直接翻译官方文档中 通过官方nginx的yum仓库在Centos中安装预编译的nginx 这种安装方式)
在 /etc/yum.repos.d 目录下创建 nginx.repo 文件在Centos系统建立nginx的
yum仓库$ sudo vim /etc/yum.repos.d/nginx.repo
向 nginx.repo 文件添加如下内容
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/<OS>/<OSRELEASE>/$basearch/
gpgcheck=0
enabled=1
其中
/mainline元素表示的是 NGINX 开源版的最新主线版本(mainline version), 删除这个元素可以得到最新稳定版(stable version)- <OS> 可以是
rhel也可以是centos <OSRELEASE>表示系统发行版本的数字, 可以是6 6.x 7 7.x 等
例如, 要为Centos7安装最新主线版本, 可以像下面这样
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
保存并退出编辑器
更新
yum仓库$ sudo yum update
安装nginx
$ sudo yum install nginx
启动nginx
$ sudo nginx
验证nginx启动成功
$ curl -l 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>
升级nginx
yum list |grep nginx 查看列表中存在的稳定版本的nginx
yum update nginx 升级nginx
nginx -s reload 重启nginx
升级可能遇到问题(我没有遇到, 参考的另一篇文章描述的)
可能出现:
nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1014002 in /usr/share/nginx/modules/mod-http-geoip.conf:1
运行下面的命令:
yum remove nginx-mod*
yum install nginx-module-*
检查nginx版本, 确认安装成功
# 查看nginx的版本, 确保安装成功
[root@izuf6ggrfujyiyg1sz1rrzz Laggage]# nginx -v
nginx version: nginx/1.12.2
启动nginx
systemctl start nginx
nginx配置文件
不同版本配置文件位置不同,本文安装的nginx版本在上面是 1.12.2的.
配置文件再 /etc/nginx 目录下

虚拟主机配置
现在nginx的虚拟主机配置文件和nginx的文件是分开的;
配置文件目录: /etc/nginx/nginx.conf
虚拟主机配置文件目录:: /etc/nginx/conf.d
nginx.conf文件中通过 include 命令来引入虚拟主机配置
http{
...
include /etc/nginx/conf.d/*.conf;
...
}
虚拟主机配置的例子
文件: /etc/nginx/conf.d/default.conf
server {
#侦听80端口
listen 80;
#定义使用www.xx.com访问
server_name www.xx.com;
#设定本虚拟主机的访问日志
access_log logs/www.xx.com.access.log main;
#默认请求
location / {
root /root; #定义服务器的默认网站根目录位置
index index.php index.html index.htm; #定义首页索引文件的名称
fastcgi_pass www.xx.com;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
location ~ \.php$ {
root /root;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
include fastcgi_params;
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
# 配置文件下载服务
location /download {
root /www;
# 让浏览器打开下载窗口,关键在于attachment,attachment后面不可以加冒号
add_header Content-Disposition 'attachment';
add_header Content-Type: 'APPLICATION/OCTET-STREAM';
}
#禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
}
}
ps
已=开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
匹配优先级
(location =) > (location 完整路径) > (location ^~ 路径) (location ,* 正则顺序) > (location 部分起始路径) > (/)
配置文件中可以用的全局变量
| 变量符号 | 说明 |
|---|---|
| $args | 这个变量等于请求行中的参数,同$query_string |
| $content_length | 请求头中的Content-length字段。 |
| $content_type | 请求头中的Content-Type字段。 |
| $document_root | 当前请求在root指令中指定的值。 |
| $host | 请求主机头字段,否则为服务器名称。 |
| $http_user_agent | 客户端agent信息 |
| $http_cookie | 客户端cookie信息 |
| $limit_rate | 这个变量可以限制连接速率。 |
| $request_method | 客户端请求的动作,通常为GET或POST。 |
| $remote_addr | 客户端的IP地址。 |
| $remote_port | 客户端的端口。 |
| $remote_user | 已经经过Auth Basic Module验证的用户名。 |
| $request_filename | 当前请求的文件路径,由root或alias指令与URI请求生成。 |
| $scheme | HTTP方法(如http,https)。 |
| $server_protocol | 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。 |
| $server_addr | 服务器地址,在完成一次系统调用后可以确定这个值。 |
| $server_name | 服务器名称。 |
| $server_port | 请求到达服务器的端口号。 |
| $request_uri | 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。 |
| $uri | 不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。 |
| $document_uri | 与$uri相同。 |
常用正则
|   |   |
|---|---|
| . | 匹配除换行符以外的任意字符 |
| ? | 重复0次或1次 |
| + | 重复1次或更多次 |
| * | 重复0次或更多次 |
| \d | 匹配数字 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的介绍 |
| {n} | 重复n次 |
| {n,} | 重复n次或更多次 |
| [c] | 匹配单个字符c |
| [a-z] | 匹配a-z小写字母的任意一个 |
小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。正则里面容易让人困惑的是反斜杠: \ 表示转义特殊字符。
Nginx的基本安装配置的更多相关文章
- nginx,php-fpm的安装配置
在centos7.2的系统下安装nginx和php-fpm nginx 安装 yum install -y nginx 即可完成安装 配置 由于之前项目使用的是apache,所以项目目录在var/ww ...
- Nginx概述及安装配置
1.概述 Nginx是一款开源的,高性能的Http和反向代理服务器,同时也是一个IMAP.POP3.SMTP代理服务器:Nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为反向代理进行负 ...
- CentOS7下搭建Nginx+PHP7的安装配置
一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C ...
- nginx+php windows安装配置
https://blog.csdn.net/zjiang1994/article/details/72876193 https://blog.csdn.net/bruce_wang_janet/art ...
- Nginx源码安装配置
Nginx web服务器简介 Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx 是由 Igor ...
- nginx 源码安装配置详解(./configure)
在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...
- thinkphp nginx+phpcgj安装配置
环境:mysql-5.6.26 nginx-1.9.4.tar.gz php-5.6.13 程序框架ThinkPHP 客户要求必须使用nginx + php 1.首先安装n ...
- Linux系统下Nginx+PHP 环境安装配置
一.编译安装Nginx 官网:http://wiki.nginx.org/Install 下载:http://nginx.org/en/download.html # tar -zvxf nginx- ...
- [Nginx]Ubuntu18.04 安装配置Nginx1.13.6+FastDFS
一. 安装fastdfs依赖包 1. 解压缩libfastcommon-master.zip 2. 进入到libfastcommon-master的目录中 3. 执行 ./make.sh 4. 执行 ...
随机推荐
- essential C++中的一些疑问记录
关于书中P87下列代码中,less<int>的使用,我目前的理解是 less<int> 是一个类型,& it 是对外部参数的引用.但是为何要加上引用,另外 调用该函数时 ...
- yzoj1891 最优配对问题 题解
题意 有n个点,且2|n,要求将其分为n/2对点对使得所有点对中距离之和尽量小 输出保留两位小数 考虑数据范围先想到的是搜索,然而搜索超时,我们发现在搜索的时候有重复搜索的情况,那么考虑记忆化,看到数 ...
- Java之多线程(一)
一,前言 今天总结一些关于线程方面的知识,说到线程可谓是无人不知,毕竟这东西不管是在工作开发中,还是实际生活中都时时存在着.关于线程方面的内容非常多,从简单的单线程,多线程,线程安全以及到高并发等 ...
- math库的使用
math库简介 math库是Python提供的内置数学内函数库,因为复数类型常用于科学计算,一般计算并不常用,因此math库不支持复数类型,仅支持整数和浮点数运算,math库一共提供4个数学常数和44 ...
- Linux执行后台work相关
Linux的后台运行.关闭.查看后台任务 & ctrl+z jobs fg bg kill nohup setsid disown screen 1.& 加在命令的最后,可以把命令放到 ...
- puttdy连接服务器报错No supported authentication methods available (server sent:publickey,gassapi-keyex,gassapi-with-mic)
No supported authentication methods available (server sent:publickey,gassapi-keyex,gassapi-with-mic) ...
- android 拍照 相册 剪切以及显示功能
一.概述 android的 图片拍照 ,相册选图,以及图片剪切功能可以说非常常用. 尤其是图片上传功能,必然用到此功能. 而公司最近的一个项目中正好用到该功能. 记录下来以便以后再次用到,直接拿来使用 ...
- 64位linux编译32位程序
昨天接到的任务,编译64位和32位两个版本的.so动态库给其他部门,我的ubuntu虚拟机是64位的,编译32位时遇到了问题: /usr/bin/ld: cannot find -lstdc++ 最后 ...
- SqlServer 2014还原数据库时提示:无法在已有的""上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件
场景 SQL Server 2014在还原数据库时提示: 无法在已有的""上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件... 实现 在还 ...
- Java 中 Set、List 和 Map 的遍历
java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. package tup.lucene. ...