Nginx 扩展操作.note

noteId: WEBf751a91d4da29ead7d5c68be02237e75 · 原始路径:/ALL/Linux - A模块/服务配置/Nginx、Nginx反向代理 - 80端口TCP/Nginx 扩展操作.note · 图片:22 · 附件待处理:1

 
 
一、修改Nginx进程用户和组:
Apache2 和 Nginx 默认的进程用户和组都是 www-data
 
1、创建用户(Nginx 的进程用户和组必须要真实存在):
# 根据题目要求创建用户:
adduser webuser    //adduser 命令能够同时创建 用户、(同名)用户组
 
2、修改 Nginx 进程用户:
vim /etc/nginx/nginx.conf
systemctl restart nginx
 
3、查看:
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、测试:
 
可以看到,这里已经提示输入用户名和密码了:
 
输入用户名和密码:
 
 
 
访问成功: