Linux-安装-Nginx

20191114 作者:陈文小超

安装前准备工作

  1. 更新系统软件
yum update
  1. 查看是否已安装wget
#查看--空则表示没有安装
rpm -qa wget
#安装
yum install wget
  1. 查看是否已安装编译器
#查看--空则表示没有安装
rpm -qa gcc
#安装
yum install gcc gcc-c++

开始安装

  1. 安装NGINX依赖包
#彻底删除Nginx(可能之前有遗留)
find / -name nginx | xargs rm -rf

#nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:
yum -y install pcre pcre-devel

#nginx的各种模块中需要使用gzip压缩:
yum -y install zlib zlib-devel

#安全套接字层密码库:
yum -y install openssl openssl-devel
  1. 下载nginx包并解压
#下载即解压目录
cd /usr/local/src

#下载Nginx--具体版本可根据需要实际下载
wget http://nginx.org/download/nginx-1.12.2.tar.gz
#(下载地址移步)http://nginx.org/download/

#解压Nginx
tar -zxvf nginx-1.12.2.tar.gz
  1. 编译安装
#安装目录以及新增Nginx用户和https必备服务
cd /usr/local/src/nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module

#编译
make
make install

  1. 设置nginx开机并启动,添加到系统服务
#创建并添加内容
vi /etc/init.d/nginx

#所要添加的内容
#!/bin/sh  
# chkconfig: 2345 85 15  
# Startup script for the nginx Web Server  
# description: nginx is a World Wide Web server.   
# It is used to serve HTML files and CGI.  
# processname: nginx  
# pidfile: /usr/local/nginx/logs/nginx.pid  
# config: /usr/local/nginx/conf/nginx.conf  
  
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
DESC="nginx deamon"  
NAME=nginx  
DAEMON=/usr/local/nginx/sbin/$NAME  
SCRIPTNAME=/etc/init.d/$NAME  
  
test -x $DAEMON || exit 0  
  
d_start(){  
  $DAEMON || echo -n "already running"  
}  
  
d_stop(){  
  $DAEMON -s quit || echo -n "not running"  
}  
  
  
d_reload(){  
  $DAEMON -s reload || echo -n "can not reload"  
}  
  
case "$1" in  
start)  
  echo -n "Starting $DESC: $NAME"  
  d_start  
  echo "."  
;;  
stop)  
  echo -n "Stopping $DESC: $NAME"  
  d_stop  
  echo "."  
;;  
reload)  
  echo -n "Reloading $DESC conf..."  
  d_reload  
  echo "reload ."  
;;  
restart)  
  echo -n "Restarting $DESC: $NAME"  
  d_stop  
  sleep 2  
  d_start  
  echo "."  
;;  
*)  
  echo "Usage: $ScRIPTNAME {start|stop|reload|restart}" >&2  
  exit 3  
;;  
esac  
  
exit 0

# 给启动文件添加执行权限
# chmod +x /etc/init.d/nginx  
 
# 添加开机自动启动nginx服务
# chkconfig --add nginx 
 
# 修改服务启动设置
# chkconfig nginx on/off  
 
# 显示开机可以自动启动的服务
# chkconfig --list nginx  
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  1. 防火墙开放80端口(nginx默认使用80端口,可在nginx.conf中配置,若无需进行远程访问则不需要开放端口)
# 永久开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 重启防火墙
firewall-cmd --reload

# 查看防火墙开启状态
systemctl status firewalld

# 查看80端口是否开放成功
firewall-cmd --zone=public --query-port=80/tcp

# 可在windows宿主主机浏览器直接访问虚拟机ip测试是否可以成功访问。
输入主机IP查看结果或者域名
  1. 配置https

vim /usr/local/nginx/conf/nginx

注意防火墙放开443端口以及80端口,如果是阿里云服务器还要在安全组放开参考放开80端口的方法

最后输入IP或者域名进行检验即可

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    # 讲http重定向到https 此配置不添加也行
    server {
        listen       80;
        server_name  www.poetchao.com;
        return       301 https://$server_name$request_uri;
    }

    # HTTPS server
    server {
        listen       443;
        server_name  www.poetchao.com;# 此域名是在申请ssl证书保护的,写其他没有用

        ssl on;
        root         /home/app/wisdom-tree/public;
        index index.html index.htm index.php;

        ssl_certificate      /usr/local/nginx/cert/3075669_www.poetchao.com.pem;# 注意路径--我设置的是和conf统计目录即/usr/local/nginx/cert
        ssl_certificate_key  /usr/local/nginx/cert/3075669_www.poetchao.com.key;# 注意路径--我设置的是和conf统计目录即/usr/local/nginx/cert

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;

        location / {
            root   /home/app/wisdom-tree/public;
            index  index.php index.html index.htm;
        }
    }

}

NGINX错误问题

  • nginx: [emerg] getpwnam(“www”) failed

解决方法1:在nginx.conf中 把user www www(显示的不一定是www www);的注释去掉,在这句前面加#即可

解决方法2:错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,分别执行如下两条命令(最有效的解决方法)

/usr/sbin/groupadd -f www
/usr/sbin/useradd -g www www
  1. Nginx无缝升级https
业务场景:之前用http,现在要用https,但是之前的Nginx不支持https
  • 查看nginx是否支持ssl:1、查看nginx是否支持ssl
/usr/local/nginx/sbin/nginx -V
  • 查看 configure arguments 信息中是否包含 -with-http_ssl_module 字样
# 如果没有则需要重新编译。找到之前安装 Nginx 时的编译目录,配置ssl模块
./configure --with-http_ssl_module
make
  • 因为这次是升级nginx,所以不需要执行 make install,首先备份原nginx执行脚本
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
  • 把新编译的nginx执行脚本拷贝到相应的目录下
cd objs/
cp nginx /usr/local/nginx/sbin/
  • 最后进行平滑升级
# nginx 根目录/usr/local/src/nginx
cd ..
make upgrade
  1. Ngnix实现多站点配置(没做完)
# nginx.conf
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

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

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    include /usr/local/nginx/conf/vhost/*.conf;
    #gzip  on;
}
  • 建立站点根目录 /home/app/ 并同时创建2个项目 /home/app/test1/index.html /home/app/test2/index.html

  • 建立vhost文件(/usr/local/nginx/conf/vhost)

  • 配置nginx.conf,加入:include vhost/*.conf;注意一定要以分号结尾

NGINX辅助命令

# 开启Nginx 
service nginx start

# 停止Nginx
service nginx stop

# 重启Nginx
service nginx reload

# 显示开机可以自动启动的服务
chkconfig --list     

# 添加开机自动启动***服务
chkconfig --add ***

# 删除开机自动启动***服务
chkconfig --del ***   

另外辅助

  • 查看系统版本
1. cat /etc/redhat-release
2. lsb_release -a
  • 清理上次编译生成的东西
make clean
  • linux下/etc/init.d的简单介绍
1、init.d 目录中存放的是一系列系统服务的管理(启动与停止)脚本
2、用service命令可执行init.d目录中相应服务的脚本
3、/etc/init.d是指向/etc/rc.d/init.d的软连接
  • Linux查看开放的端口
netstat -anlp | grep 3306

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈文小超_自律

努力自己,幸福他人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值