提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、nginx是什么?
Nginx 是一个高性能的 Web 服务器和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器
二、使用步骤
1.安装依赖包
代码如下(示例):
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.下载并解压安装包
代码如下(示例):
//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
3.安装nginx
代码如下(示例):
//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.13.7
//执行命令 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
//执行make命令
make
//执行make install命令
make install
4.启动nginx服务
代码如下(示例):
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
5.配置nginx.conf
代码如下(示例):
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
将端口号改成8089(随便挑个端口),因为可能apeache占用80端口,apeache端口尽量不要修改,我们选择修改nginx端口。
nginx的location配置location的语法:
location [ = | ~ | ~* | ^~ ] uri { … }
| 指令 | | 匹配标识 | | 匹配的网站网址 | | 匹配URI之后要执行的配置段|
精确匹配(=) > 字符串打头匹配(^~) > 正则匹配(或) > 否定式正则匹配(!或!) > 通用匹配(/)。两种正则当中,区分大小写的优先级高,也就是不带*的优先级高(范围从小到大)
a. 精确匹配:
location = / {
#精确匹配访问网站根目录
}
location = /login {
#精确匹配http://xxx.com/login
}
b. ^~ 表示以什么打头,关键在于正则的开头符 ^
location ^~ /static/ {
#以/static打头,比如 http://xxx.com/static/jQuery.js
}
c. 正则匹配(~ 区分大小写的正则, ~* 不区分大小的正则)
location ~ \.png {
#以png结尾,比如比如 http://xxx.com/img/a.png
}
location ~* \.png$ {
#以png或者PNG或者Png等等结尾,比如比如 http://xxx.com/img/a.pNg。如果是png结尾,会优先匹配上面一条。
}
d. 排除法的正则,同样区分大小写优先于不区分大小写
location !~ \.png$ {
#匹配“以png结尾”失败,进入location,那就情况多了去了,只要不以png结尾就行
}
location !~* \.xhtml$ {
#匹配“以png或者PNG或者PnG等等”结尾失败,进入location,那情况也多了去了,只要不是PNG的各种大小写变体就行
}
e. 通用匹配
location / {
#用来兜底的,当前面其他所有的规则都不满足条件,就归入这个通用的
}
f. “@”前缀
在这里插入代码片
将localhost修改为你服务器的公网ip地址。
6.重启nginx
代码如下(示例):
/usr/local/nginx/sbin/nginx -s reload
查看nginx进程是否启动:ps -ef | grep nginx
随后访问该服务器ip:端口 即可看到nginx界面。
安装完成一般常用命令
进入安装目录中,
命令: cd /usr/local/nginx/sbin
启动,关闭,重启,命令:
启动
./nginx
关闭
./nginx -s stop
重启
./nginx -s reload
停止
查看进程号:ps -ef|grep nginx
杀死进程: kill -quit xxxx
142804是进程的编号
强制停止: pkill -9 nginx
7.关闭服务器防火墙或开放nginx服务端口
若想使用外部主机访问nginx,需要关闭服务器防火墙或开放nginx服务端口,端口为上一步nginx.conf的配置端口:
关闭防火墙会导致服务器有一定风险,所以建议是单独开放服务端口 :
开放80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
查询端口号80 是否开启:
firewall-cmd --query-port=80/tcp
重启防火墙:
firewall-cmd --reload