Nginx 全局块配置 user 指令详解

1. 前言

user 指令用于配置运行 nginx 服务器的 worker 进程的用户和用户组,这样对于系统权限的访问控制更加精细和安全

如果你修改过 nginx.conf,那么就会看到文件第一行的 user 指令配置,默认是被注释掉的(默认使用 nobody 用户)

 
  1. # 查看 nginx.conf 前三行
  2. cat /usr/local/nginx/conf/nginx.conf | head -n 3

2. 配置文件

语法:

 
  1. # user_name 用户名
  2. # group_name 用户组(可省略,省略时使用和用户名名称相同的组,一般都会省略)
  3. user user_name [group_name];

接下来,我们通过 nginx.conf 配置文件指定 worker 进程的启动用户

第一步:创建 www 用户

 
  1. useradd www;

第二步:打开 nginx.conf,修改 user 指令配置

 
  1. # 去除 user 指令的注释,将 nobody 修改为 www
  2. vim /usr/local/nginx/conf/nginx.conf
  3. # 查看 nginx.conf 前三行,确认修改成功
  4. cat /usr/local/nginx/conf/nginx.conf | head -n 3
  5. # 重载配置
  6. /usr/local/nginx/sbin/nginx -s reload

第三步:创建 /root/html/index.html 页面,添加以下内容

 
  1. mkdir /root/html
  2. vim /root/html/index.html
 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>欢迎使用 Nginx !</title>
  5. <meta charset="UTF-8">
  6. <style>
  7. body {
  8. width: 35em;
  9. margin: 0 auto;
  10. font-family: Tahoma, Verdana, Arial, sans-serif;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1>欢迎使用 Nginx !</h1>
  16. <p>如果您看到此页面,则表明 nginx web 服务器已成功安装并运行。</p>
  17. <p><em>感谢您使用 nginx。</em></p>
  18. </body>
  19. </html>

第四步:修改 nginx.conf,将默认的站点目录 html,修改为 /root/html

 
  1. location / {
  2. root /root/html;
  3. index index.html index.htm;
  4. }
 
  1. # 重载配置
  2. /usr/local/nginx/sbin/nginx -s reload

第五步:测试访问,发现 403 Forbidden 错误

这是因为 worker 进程的启动用户是 www,但是 www 用户没有访问 /root/html 目录的权限

第六步:将站点目录复制到 /home/www 下,这是 www 用户的家目录,当然是有权限的

 
  1. cp -r /root/html /home/www

修改 nginx.conf,将站点目录 /root/html,修改为 /home/www/html

 
  1. location / {
  2. root /home/www/html;
  3. index index.html index.htm;
  4. }
 
  1. # 重载配置
  2. /usr/local/nginx/sbin/nginx -s reload

再访问就发现可以正常显示了

3. 编译参数

user 指令也可以在编译的时候设置,如果配置文件和编译安装时都指定了该参数,生效的是配置文件中的配置

 
  1. ./configure --user=USER --group=GROUP

编译时即使指定了该参数,配置文件中的内容还是被注释掉的 nobody 用户,这是正常的

 
  1. # 参数配置
  2. ./configure --prefix=/usr/local/nginx --user=www
  3. # 查看配置文件内容和进程启动用户
  4. /usr/local/nginx/sbin/nginx -V
  5. cat /usr/local/nginx/conf/nginx.conf | head -n 3
  6. ps -ef | grep nginx

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
nginx全局变量配置详解如下: 在nginx配置文件中,可以使用全局变量来实现一些配置的判断和处理。全局变量在整个nginx配置中都是可见的,可以在不同的上下文中使用。 在引用中的示例中,主要使用了两个全局变量:$host和$request_uri。$host表示当前请求的主机名,$request_uri表示当前请求的URI。通过这些全局变量的值,可以进行条件判断和重定向跳转等操作。 另外,在nginx配置中,还可以使用其他一些全局变量,例如: - $remote_addr:客户端的IP地址 - $http_user_agent:客户端的User-Agent信息 - $http_referer:客户端的Referer信息 $args:查询参数部分 - $scheme:请求的协议(http或https) 除了使用这些内置的全局变量外,还可以通过自定义变量来扩展nginx的功能。可以使用set指令来定义变量,并在配置中使用。 在nginx全局配置中,可以使用全局块、events块和http块来进行配置全局块中的配置影响全局,包括运行nginx的用户组、进程存放、日志、配置文件等。events块用于配置nginx服务器与客户端的网络连接,包括进程最大连接数、数据驱动模型、序列化等。http块是最常用的配置块,用于配置代理、缓存、日志和第三方模块等。 在http块中,可以嵌套多个server块,每个server块表示一个虚拟主机的参数配置。而在server块中,可以使用location块来配置请求路由和页面处理。 综上所述,nginx全局变量配置详解如上所述,主要包括内置的全局变量和自定义变量的使用,以及全局块、events块和http块的配置结构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Nginx 配置详解](https://blog.csdn.net/u011262253/article/details/120941175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超酷的站长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值