【nginx】centos7源码安装配置nginx

一,安装

1.检查并安装所需的依赖软件

 1).gcc:nginx编译依赖gcc环境

   安装命令:yum install gcc-c++

 2).pcre:(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式.

   安装命令:yum install -y pcre pcre-devel

 3).zlib:该库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip。

   安装命令:yum install -y zlib zlib-devel

 4).openssl:一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http).

   安装命令:yum install -y openssl openssl-devel

2.下载nginx源码包

    下载安转之前检测一下是否已经安装:find -name nginx 如果安装则卸载:yum remove nginx 

 下载命令:wget http://nginx.org/download/nginx-1.12.0.tar.gz

3.解压缩源码包并进入

 1).解压缩:tar -zxvf nginx-1.12.0.tar.gz

 2).进入解压缩后文件夹:cd nginx-1.12.0

4.配置编译参数命令:(可以使用./configure --help查询详细参数)

配置ssl模块:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

注:安装之前需要手动创建上面指定的nginx文件夹,即/var/temp、/var/temp/nginx、/var/run/nginx/文件夹,否则启动时报错

5.编译并安装(进入到解压目录)

  命令:先 make 然后再 make install

  可以进入/usr/local/nginx查看文件是否存在conf、sbin、html文件夹,若存在则安装成功

二,基本使用

1.启动nginx

 1).进入安装目录

   cd /usr/local/nginx/sbin/

 2).启动

   ./nginx

 3).若报错:[emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)

   需要查看下是不是在/var/run文件夹下不存在nginx文件夹,不存在则新建

 4).查看是否启动:ps -ef | grep nginx

   如果有master和worker两个进程证明启动成功

      

  注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:

   ./nginx -c /usr/local/nginx/conf/nginx.conf

   如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))

2.停止

 1).暴利kill(不推荐使用)

   kill -9 processId

 2).快速停止

   cd /usr/local/nginx/sbin && ./nginx -s stop

   此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程

 3).完整停止(建议使用)

   cd /usr/local/nginx/sbin && ./nginx -s quit

   此方式停止步骤是待nginx进程处理任务完毕进行停止

3.重启及重新加载配置

  1.先停止再启动(建议使用)

    ./nginx -s quit && ./nginx

  2.重新加载配置文件

    ./nginx -s reload

4.测试是否已安装成功

启动Nginx后,在浏览器中访问主机IP,nginx服务器默认是80端口。 

所以先查看哪些已启用:firewall-cmd --list-ports

开启端口(centos7):firewall-cmd --zone=public --add-port=80/tcp --permanent

在重启防火墙:firewall-cmd --reload

最后访问主机ip,查看是否有nginx的欢迎界面

三,开机自启 

centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。关于Systemd的详情介绍在这里

Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令

systemcel enable nginx.service

 设置开机启动即可。在这里我是用源码编译安装的,所以要手动创建nginx.service服务文件。

1.在系统服务目录里创建nginx.service文件 

vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

2.设置开机启动

# 开启开机自启
systemctl enable nginx.service
# 启动
systemctl start nginx.service

3.相关命令

启动nginx服务
systemctl start nginx.service 
设置开机自启动
systemctl enable nginx.service
停止开机自启动
systemctl disable nginx.service
查看服务当前状态
systemctl status nginx.service
重新启动服务
systemctl restart nginx.service 
查看所有已启动的服务
systemctl list-units --type=service

四,问题

1.阿里云服务器,如果出现nginx安装启动成功,但无法访问

可以按以下思路排查:

1》查看80端口是否开启

2》在服务器端使用wget 127.0.0.1 或 curl 127.0.0.1如果都返回相应数据说明nginx在服务器上没问题

3》telnet 12x.xx.x.xx 80 测试网络是否通畅

4》最后查看阿里云控制台找到--云服务器ECS--网络和安全--安全组,找到你的服务器实例里的配置规则,查看服务器安全组策略是否开启http(80),如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值