非root用户在80端口运行nginx

  一般情况下没有这种需求,但对于强迫症患者来说,还是完整的走了一把。

  普通用户是不允许使用1024以下端口的,所以此次操作仍然需要root权限来进行配置。而且由于使用了root安装,因此nginx用户仍然需要部分root授权。

一、安装

  由于想后期维护偷懒,所以采取yum安装,这个需要用root装,因此nginx被安装到了系统的目录下面。涉及此次操作的目录及文件如下:

配置目录:/etc/nginx
配置文件:/etc/nginx/conf.d/default.conf
bin文件:/usr/sbin/nginx

二、配置相关权限(nginx用户已建好)

  1、将nginx用户加入到root组,同时修改相关目录为同组可写(chmod g+w path)。否则启动时会报没有目录权限。相关目录或文件如下:

usermod -g root nginx
chmod g+w /etc/nginx/conf.d  --此操作只为以后可以使用普通用户修改配置
chmod g+w /etc/nginx/conf.d/default.conf  --此操作只为以后可以使用普通用户修改配置
chmod g+w /var/cache/nginx  --若不赋权,则运行报无法创建目录的错

  2、修改为nginx用户添加特殊权限,具体原理请参看:Linux普通用户启动nginx

chmod u+s /usr/sbin/nginx

  3、由于运行时nginx需要访问的默认目录都是归属root用户,因此要么都做g+w赋权,要么在default.conf中修改默认路径,指向nginx用户的目录。如:

htmlroot:/usr/share/nginx/html

三、自签名ssl证书的制作,详细操作请参见:如何创建一个自签名的ssl证书(X509)

1 $ openssl genrsa -des3 -out server.key 2048    --生成私钥
2 $ openssl req -new -key server.key -out server.csr    --生成CSR(证书签名请求),会要求输入一些信息,其中Common Name要填写域名,否则浏览器会警告
3 $ cp server.key server.key.org    --删除私钥中的密码(可选)1
4 $ openssl rsa -in server.key.org -out server.key    --删除私钥中的密码(可选)2
5 $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt    --生成自签名证书
原文地址:https://www.cnblogs.com/badwood316/p/10319124.html