此前一直通过宝塔面板等方式使用Nginx,这次需要单独部署Nginx。又因网上大部分教程图省事,多直接使用root用户安装,缺少介绍适合使用普通用户安装的方法,周二晚上鼓捣许久,故作记录。
源码、安装包和日志均放置在用户家目录下。
环境确认
1 2
| [user01@centos ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
|
Ubuntu或Debian系发行版本亦可参考。
正常YUM安装
1 2 3 4
| #添加仓库 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum -y instal nginx systemctl start nginx //启动nginx
|
1 2 3 4
| # 此方式下的主要配置路径 /etc/nginx/nginx.conf //yum方式安装后默认配置文件的路径 /usr/share/nginx/html //nginx网站默认存放目录 /usr/share/nginx/html/index.html //网站默认主页路径
|
编译安装
环境准备
1 2 3 4 5
| # 环境准备 yum install -y gcc-c++ yum install -y pcre pcre-devel //nginx的http模块使用pcre来解析正则表达式 yum install -y zlib zlib-devel //zlib库用于对http包的内容进行gzip压缩和解压缩 yum install -y openssl openssl-devel //支持https协议
|
CentOS 7.9版本已经默认安装了OpenSSL等软件。如果你的服务器恰好没有安装这些基础软件,可以yum安装或仍使用编译安装的方式。
接下来,下载源码用于为Nginx编译时提供源码包:
下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| cd /home/user01 mkdir package cd package wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.44/pcre-8.44.tar.gz # wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.35/pcre2-10.35.tar.gz wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz wget http://www.zlib.net/zlib-1.2.12.tar.gz wget http://nginx.org/download/nginx-1.18.0.tar.gz chmod -R 777 /home/user01/package
#解压 tar -zxf pcre-8.44.tar.gz tar -zxf openssl-1.1.1c.tar.gz tar -zxf zlib-1.2.12.tar.gz tar -zxf nginx-1.18.0.tar.gz -C /home/user01/package
|
编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| mkdir /home/user01/nginx mkdir /home/user01/nginxvar
./configure \ --prefix=/home/user01/nginx \ --lock-path=/home/user01/nginxvar/lock/nginx.lock \ --error-log-path=/home/user01/nginxvar/log/nginx/error.log \ --http-log-path=/home/user01/nginxvar/log/nginx/access.log \ --with-pcre=/home/user01/package/pcre-8.44 \ --with-zlib=/home/user01/package/zlib-1.2.12 \ --with-openssl=/home/user01/package/openssl-1.1.1c \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-stream
make && make install
|
普通用户是无权限读写/var下面的内容的,为此下载源码包是为了编译时指定源码。指定日志也是为了避免默认路径没有读写权限。
启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 编译方式下的配置路径在指定的/home/user01/nginx/中 cd /home/user01/nginx/sbin ./nginx ./nginx -s stop ./nginx -s reload
#检查启动情况 ps -aux | grep nginx #若启动失败,修改监听端口(非root用户建议使用1024以上的端口) vi /home/user01/nginx/conf/nginx.conf #或使用root用户放开防火墙限制80和443端口 systemctl status firewalld
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --zone=public --add-port=8443/tcp --permanent firewall-cmd --reload
|
以上。
引用