Nginx的安装
下载地址:
Index of /download/
解压缩Nginx的tar包
tar -zxvf nginx-1.16.1.tar.gz
进入解压目录:cd nginx-1.16.1
然后运行
./configure
默认的安装路径是/usr/local/nginx,可以通过 ./configure --prefix=/home/wjz 来指定安装目录
然后运行编译:
make && make install
在configure的时候没有指定目录时,Nginx的默认安装目录是/usr/local/nginx
在/usr/local/nginx/sbin目录下检验Nginx启动是否有问题,在该目录下
./nginx -t
报错若显示如下,需要修改conf文件
修改/usr/local/nginx/conf/nginx.conf
因为我用root用户启动nginx,所以我修改这里的用户为root;
修改完成后再次检验没问题
启动nginx
./nginx
显示如下界面,说明启动成功
Nginx的配置
打开nginx.conf 配置文件,前两行是:
#user nobody; #指定用户,可以改为 user root;
worker_processes 1;
要了解的是,在Nginx运行的时候,会启动两种进程,一种是主进程master process,负责监控端口,协调工作进程的工作状态,分配工作任务;一种是工作进程worker process,负责进行任务处理。
这里默认worker_processes 进程是1,可以根据服务器性能情况进行修改。
nginx配置默认首页(index.html index.htm)
在安装Nginx的服务器上设置默认首页的目录,默认目录就是Nginx的安装目录(相对路径),即/usr/local/nginx/html
这里设置为/root/html目录(绝对路径),在该目录下
编辑index.html文件为
<h1>web1.test.com</h1>
编辑后,Nginx重新加载配置文件
./nginx -s reload
查看页面显示为
Location配置规则
不带符号,要求必须以指定模式开始
server {
listen 80;
server_name 127.0.0.1;
location /abc{
default_type text/plain;
return 200 "access success";
}
}
以下访问都是正确的
http://192.168.200.133/abc
http://192.168.200.133/abc?p1=TOM
http://192.168.200.133/abc/
http://192.168.200.133/abcdef
= : 用于不包含正则表达式的uri前,必须与指定的模式精确匹配
server {
listen 80;
server_name 127.0.0.1;
location =/abc{
default_type text/plain;
return 200 "access success";
}
}
可以匹配到
http://192.168.200.133/abc
http://192.168.200.133/abc?p1=TOM
匹配不到
http://192.168.200.133/abc/
http://192.168.200.133/abcdef
~ : 用于表示当前uri中包含了正则表达式,并且区分大小写
~*: 用于表示当前uri中包含了正则表达式,并且不区分大小写
换句话说,如果uri包含了正则表达式,需要用上述两个符合来标识
Nginx反向代理设置
只需要在location处增加:proxy_pass http://IP地址:端口号或者域名就可,如下
server_name是服务器本身的ip地址或者name
编辑后,Nginx重新加载配置文件
./nginx -s reload
测试成功!
Nginx负载均衡设置
Nginx有多种负载均衡设置,本文章的需求是有两个IP地址,ip1和ip2,实现ip1是主要使用的,ip2作为备用,当ip1:8080端口无法访问的时候,会访问ip2:8080
编辑后,Nginx重新加载配置文件
./nginx -s reload
测试成功!
另外一些常见的命令
./nginx -h 查看nginx所有的命令参数
options 说明
-?,-h this help
-v 显示nginx的版本号
-V 显示nginx的版本号和编译信息
-t 检查nginx配置文件的正确性
-T 检查nginx配置文件的正确定及配置文件的详细配置内容
-q suppress non-error messages during configuration testing
-s signal 向主进程发送信号,如:./nginx -s reload 配置文件变化后重新加载配置文件并重启nginx服务
-p prefix 设置nginx的安装路径
-c filename 设置nginx配置文件的路径
-g directives 设置配置文件之外的全局指令
nginx安全漏洞(CVE-2021-23017)修复
需要注意的是,如果Nginx -V 显示configure arguments,什么也没有就是没有加参数
重启的时候直接用Nginx -s reload 即可
报错:
报错1:upstream timed out (110: Connection timed out) while connecting to upstream,
查看网络是否可以ping通
telnet对应的访问端口是否通
避免web文件信息泄露
避免web上访问文件下载文件的信息泄露,可以对访问的类型文件限制
#避免文件信息泄露,限制以下类型文件不能访问下载
location ~* \.(docx|txt|tar|csv|doc|log)$ {
deny all;
}
nginx升级查看这篇文章:
nginx 版本升级_猎人在吃肉的博客-CSDN博客_nginx升级
参考文章:nginx安全漏洞(CVE-2021-23017)修复_皮皮虾不皮呀的博客-CSDN博客_nginx 安全漏洞
nginx -s reload 与 service nginx restart 的区别_Roc.Chang的博客-CSDN博客
systemctl命令_怎么把mysqld.service服务加入到systemctl_weixin_39758229的博客-CSDN博客
参考文章:
Nginx安装:
解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
nginx 手动安装 及依赖包安装(pcre+zlib+openssl)
centos7 下安装 nginx-1.12.2
Nginx配置:
Linux之Nginx使用
Nginx配置upstream实现负载均衡
nginx 常用指令配置总结_逆风飞翔的小叔的博客-CSDN博客_nginx配置命令
nginx的location配置详解:location匹配规则
————————————————
版权声明:本文为CSDN博主「大宇进阶之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wjzholmes/article/details/115906300