以当前用户身份运行 nginx

以当前用户身份运行 nginx

在我的 Linux PC 上,我想以启动时登录的用户身份运行 nginx,并且希望它在该用户的主目录中查找配置文件。

有没有办法安装 nginx 来执行此操作,而不是始终以同一用户身份运行(例如 nginx 用户)并查找 /etc 或 /usr 中的某些配置目录?

答案1

当然有。

您在主目录中创建一个具有类似内容的 nginx.conf 文件(将 [USERNAME] 替换为您的登录名):

error_log /home/[USERNAME]/nginx.log;
pid        /home/[USERNAME]/nginx.pid;

http {
    include  /etc/nginx/mime.types;
    index   index.php;
    client_body_temp_path /home/[USERNAME]/tmp;
    proxy_temp_path /home/[USERNAME]/tmp;
    fastcgi_temp_path /home/[USERNAME]/tmp;
    uwsgi_temp_path /home/[USERNAME]/tmp;
    scgi_temp_path /home/[USERNAME]/tmp;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$http_cookie" "$sent_http_content_type"';

    access_log  /home/[USERNAME]/nginx-access.log  main  buffer=32k;

    gzip  on;

    server {
        listen       1234;
        server_name  server.example.com;
        root    /home/[USERNAME]/public_html;
        index index.php;

        ... 
    }
}

然后运行/usr/sbin/nginx -c /home/[USERNAME]/nginx.conf​​- 它将为您的用户启动服务器。请记住,只有 root 可以绑定到 1024 以下的端口(即 80)。您必须将服务器配置为侦听其他端口。

答案2

如果配置文件夹是硬编码的(意味着没有可用的命令行参数来更改它们),则必须自己编译它并使用--prefix等更改参数。

相关内容