目录
nginx配置默认首页(index.html index.htm)
Nginx的安装
下载地址:
解压缩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对应的访问端口是否通
参考文章: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)
Nginx配置: