CentOS6编译安装nginx

把之前放在OneNote上的笔记转移到博客

创建用来运行nginx的用户和组

groupadd nginx     #增加组
    useradd -g nginx -M nginx    #增加用户,-g为用户指定一个组,-M保证系统不为这个用户生成home目录
vi /etc/passwd

找到nginx,将后面的/bin/bash 改为/sbin/nologin #禁止该用户通过ssh使用密码登陆

安装所必须的包
yum -y install gcc autoconf automake libtool make gcc-c++
安装pcre、zlib,前者为了重写rewrite,后者为了gzip压缩

安装pcre

    cd /usr/local/src
    wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
    tar -xzvf pcre-8.42.tar.gz
    cd pcre-8.42
    ./configure -prefix=/usr/local/pcre
    make && make install

安装zlib

    cd ..     #回到src
    wget http://zlib.net/zlib-1.2.11.tar.gz
    tar -xzvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure -prefix=/usr/local/zlib
    make && make install

安装openssl

    cd ..   #回到src
    wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
    cd openssl-1.0.2o
    ./config shared zlib --prefix=/usr/local/openssl   #将openssl安装到这个文件夹中
    make && make install

安装nginx(此处为稳定版)

    cd ..
    wget http://nginx.org/download/nginx-1.12.2.tar.gz
    tar -xzvf nginx-1.12.2.tar.gz
    cd nginx-1.12.2
    ./configure --prefix=/usr/local/nginx \
    --sbin-path=/usr/local/nginx/nginx \
    --conf-path=/usr/local/nginx/conf \
    --pid-path=/usr/local/nginx/run/nginx.pid \
    --user=nginx \    #指定nginx运行使用的用户身份
    --group=nginx \   #指定用户组
    --with-http_ssl_module \
    --with-pcre=/usr/local/src/pcre-8.42 \
    --with-zlib=/usr/local/src/zlib-1.2.11 \
    --with-openssl=/usr/local/src/openssl1.0.2o \     #这三行需要的是刚刚下载的源码的存放路径而不是安装后的路径
    --without-mail_pop3_module \
    --without-mail_imap_module \
    --without-mail_smtp_module    #禁止nginx作为邮件服务器

    make  #双核处理器可以make -j2   四核可以make -j4  编译的速度可以提高
    make install
启动nginx
/usr/local/nginx/nginx   #默认使用80端口,必须确保80端口未被占用,否则会导致开启失败,也可以在conf文件里修改监听端口为别的端口
修改iptables,开放80端口

默认系统是关闭80端口的,不推荐关闭iptables,这里我们修改iptables,达到开放80端口的目的

vi /etc/sysconfig/iptables

在22端口的那一条的下一行添加一行记录,模仿22端口的语句,将22改为80即可,3306端口同理

在最后一行添加的话可以成功重启,而且也可以用命令看到是成功开启了的,但访问的时候还是被拒绝,不知道为什么

保存退出后重启iptables
service iptables restart
关闭防火墙 service iptables stop
查看防火墙开放状态 /etc/init.d/iptables status

猜你喜欢

转载自blog.csdn.net/hei_ha_hei/article/details/81091776