Nginx 扩展操作.note
一、修改Nginx进程用户和组:
Apache2 和 Nginx 默认的进程用户和组都是 www-data
1、创建用户(Nginx 的进程用户和组必须要真实存在):
# 根据题目要求创建用户:
adduser webuser //adduser 命令能够同时创建 用户、(同名)用户组2、修改 Nginx 进程用户:
vim /etc/nginx/nginx.conf
systemctl restart nginx3、查看:
ps aux | grep nginx
二、Nginx启用 php:
1、安装 php:
apt install -y php8.2-fpm //安装时建议指定版本(因为配置文件中需要指定版本),如果不指定版本,那么就会安装最新版php,不稳定的同时,还不容易查看版本号2、启用 php(在配置文件中):
vim /etc/nginx/sites-enabled/default·修改前:

·修改后:

三、匹配多个 域名、IP(类似 Apache2的 ServerAlias):
server_name 中 可以定义匹配多个域名、IP

四、http重定向到https、二级域名、其它所有三级域名重定向到 指定三级域名(www.haihe2024.tj):
使用 return 字段
核心思路:使用 server{...}(虚拟主机) 中的 server_name 进行匹配流量(而不是麻烦的去写正则表达式),成功匹配到流量之后,使用 return 重定向到 指定的域名即可
·因此,用于重定向的配置,只需要 server_name、根目录,监听端口配置,即可
使用 server_name 匹配流量
vim /etc/nginx/sites-enabled/default
# 如果有多个 80 端口的虚拟主机需要匹配流量,那么就把重定向的虚拟主机写在最下方,如果只有一个,那么随意·使用 自带的 default_server 来匹配流量:
相较于 apache2只能够使用 ServerName 和 ServerAlias 匹配流量,Nginx 中有一个 default_server 字段,该字段的作用是:
例如,两个监听 80 端口的虚拟主机,第一个定义了 server_name 匹配 haihe2024.tj,而第二个没有匹配,只定义了 server_name _ ,那么,因为 default_server 字段在,所有没有被匹配到的,该端口(80)的流量,都将会被 default_server 接收。
(可以理解为 cisco 的默认路由,不过必须得是这个虚拟主机定义的端口的流量[ 用 listen 定义的 ])

·使用 return 字段:

五、隐藏版本号(隐藏错误页面的版本号):
在 Nginx 和 Apache2 中,他们的错误页面(404等)会显示其服务器的版本号
1、只隐藏服务器版本:
vim /etc/nginx/nginx.conf
# 这个选项默认就有,取消注释即可
·修改前:

·修改后:

六、设置 访问日志、错误日志 路径:
1、设置全局 访问日志、错误日志 路径:
vim /etc/nginx/nginx.conf·访问日志路径:

·错误日志路径:

2、对单个虚拟主机指定 访问日志、错误日志 路径:
vim /etc/nginx/sites-enabled/default复制上面的 错误日志、访问日志的配置,然后粘贴到虚拟主机中即可

七、开启 目录浏览:
1、全局配置:
# 在 nginx.conf 配置文件中添加即可
vim /etc/nginx/nginx.conf
2、单个虚拟主机启用:
在 虚拟主机配置 文件中定义:
location / {
autoindex on;
}测试:

3、扩展操作:
书写在 nginx.conf 或者 虚拟主机配置文件中即可
(1)显示带单位的大小(MB、GB):

注意是 off
(2)显示文件被创建时的本地时间:

(3)测试:

八、配置 网页身份认证(需要输入用户名和密码):
1、生成 用户名、密码 文件:
cd /etc/nginx/sites-enabled
htpasswd -cm .htpasswd user2
## 输入密码
# 如果有多个用户:
htpasswd -m .htpasswd user2
## -c 选项能够在文件不存在时直接创建文件,但是当文件存在时,会直接覆盖文件,因此如果有多个用户,需要去掉 -c 选项2、配置 nginx:
vim /etc/nginx/sites-enabled/default
3、测试:
可以看到,这里已经提示输入用户名和密码了:

输入用户名和密码:

访问成功:
