Nginx的安装和配置

目录

Nginx的安装

Nginx的配置

nginx配置默认首页(index.html index.htm)

Nginx反向代理设置

Nginx负载均衡设置

另外一些常见的命令

nginx安全漏洞(CVE-2021-23017)修复

报错:

避免web文件信息泄露

Nginx server_name详解


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说明
-?,-hthis help
-v 显示nginx的版本号
-V显示nginx的版本号和编译信息
-t检查nginx配置文件的正确性
-T检查nginx配置文件的正确定及配置文件的详细配置内容
-qsuppress 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 server_name详解

 Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name可以是访问的域名:端口,也可以是IP:端口

如果访问的是IP这种方式,需要将service_name设置为ip 

例如在27服务器上设置如下

 在另一台服务器22上访问

 如果将27服务器上nginx修改为:

 在22服务器上访问:

当然,如果一个端口只有一个server,没有设置多个server,则server_name不设置也不影响

27服务器上nginx修改为:

  在22服务器上访问:

Nginx配置server_name讲解_nginx server_name使用_Studying_swz的博客-CSDN博客

其他参考文章: 

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匹配规则

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大宇进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值