yum部署方法
操作系统:CentOS 7
setenforce 0
systemctl stop iptables.service systemctl stop firewalld.service |
安装 Nginx 根据喜好选择安装方式和版本
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm yum -y install nginx |
准备配置文件 修改 /etc/nginx/nginx.conf
内容如下:
$ vim /etc/nginx/nginx.conf
… 配置省略
运行 Nginx,# 确保配置没有问题, 有问题请先解决
nginx -t
启动服务
systemctl start nginx
systemctl restart nginx
systemctl stop nginx
systemctl enable nginx
重新加载配置
nginx -s reload
或者
/usr/local/nginx/sbin/nginx -s reload
编译部署方法
软件需要编译安装的真实理由有如下3点:
- 软件在编译期间需要配置,比如说nginx,需要在编译的时候指定包含哪些module,php,apache 也是一样。同样的是数据库,mysql 通过编译安装,因为要定制存储引擎(是否支持innodb .. ),而sqlite却绝少有人编译,都是直接下载二进制文件来用。
- 软件需要统一安装路径,每个team都会自己的安装目录约定,有些喜欢装在 /opt/下面,有些喜欢装在 /usr/local/ ,编译安装可以方便的指定这些路径(configure –prefix=xxx )
- 需要最新的版本,软件仓库的版本一般都比较低,这个理由其实不充分,生产环境倾向保守,不追求最新版本,但是对于geek来说,这可能是最重要的原因
正式安装步骤:
1、环境准备:先安装准备环境
yum -y install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
2、下载nginx 安装包:
官网地址: http://nginx.org/
3、上传服务、解压安装包:
tar xvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
4、编译nginx:make
编译是为了检查系统环境是否符合编译安装的要求,比如是否有gcc编译工具,是否支持编译参数当中的模块,并根据开启的参数等生成Makefile文件为下一步做准备:
./configure –prefix=/usr/local/nginx –sbin-path=/usr/local/nginx/sbin/nginx –conf-path=/usr/local/nginx/conf/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx/nginx.pid –lock-path=/var/lock/nginx.lock –user=nginx –group=nginx –with-http_ssl_module –with-http_stub_status_module –with-http_gzip_static_module –http-client-body-temp-path=/var/tmp/nginx/client/ –http-proxy-temp-path=/var/tmp/nginx/proxy/ –http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ –http-uwsgi-temp-path=/var/tmp/nginx/uwsgi –http-scgi-temp-path=/var/tmp/nginx/scgi –with-pcre |
make && make install
备注:nginx完成安装以后,有四个主要的目录:
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。
5、启动、报错、解决
问题1
[root@Wordpress sbin]# /usr/local/nginx/sbin/nginx
nginx: [emerg] getpwnam(“nginx”) failed
解决方案2
[root@Wordpress sbin]# useradd -s /sbin/nologin -M nginx
[root@Wordpress sbin]# id nginx
uid=1001(nginx) gid=1001(nginx) 组=1001(nginx)
问题2
[root@Wordpress sbin]# /usr/local/nginx/sbin/nginx
nginx: [emerg] mkdir() “/var/tmp/nginx/client/” failed (2: No such file or directory)
解决方案2
[root@Wordpress sbin]# mkdir /var/tmp/nginx
问题3
[root@Wordpress conf]# /usr/local/nginx/sbin/nginx -t
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
解决方案3
编辑配置文件nginx.conf ;
在配置文件中有个注释的地方: #pid logs/nginx.pid;将注释放开,并修改为:pid /usr/local/nginx/logs/nginx.pid;
在 /usr/local/nginx 目录下创建 logs 目录:mkdir /usr/local/nginx/logs/
/usr/local/nginx/sbin/nginx #启动 服务
/usr/local/nginx/sbin/nginx -s reload #不停止服务重读配置文件 /usr/local/nginx/sbin/nginx -s stop #停止服务 #停止服务 /usr/local/nginx/sbin/nginx -t #检查启动是否正常 |
6、加入systemctl管理服务
- 进入到 /usr/lib/systemd/system 目录下,编辑文件 nginx.service
- 在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 stop PrivateTmp=true [Install] WantedBy=multi-user.target |
使新注册服务生效
systemctl daemon-reload