如何安装Nginx Nginx的安装、配置与维护

nginx的获取

RPM包获取: http://nginx.org/packages/
源码包获取:http://nginx.org/download/

方法一:nginx的rpm包安装

[root@localhost tools]# yum localinstall nginx-1.8.0-1.el7.ngx.x86_64.rpm
[root@localhost tools]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/conf.d/example_ssl.conf
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx
/usr/lib/systemd/system/nginx.service
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

–配置文件 /etc/nginx/nginx.conf
–主目录 /usr/share/nginx/html/
–查看版本 /usr/sbin/nginx -v
–配置文件语法检查 /usr/sbin/nginx -t
–服务启动停止 /etc/init.d/nginx {start|stop|restart|reload|status}
注意:若需要gzip和rewrite的正则,需要zlib,zlib-devel,pcre已经安装好


方法二:nginx源码安装

1、创建nginx用户和组
注意:如果之前用rpm包安装,先卸载,删除nginx用户

[root@hzitedutools]# groupadd -r -g 108 nginx
[root@hzitedutools]# useradd -r -u 108 -g 108 nginx
[root@hzitedutools]# id nginx
uid=108(nginx) gid=108(nginx)=108(nginx)

2、解压

[root@hzitedutools]# tar xf nginx-1.8.0.tar.gz -C /usr/local/src/

3、准备编译配置文件

安装依赖包:pcre-devel、zlib-devel
[root@hzitedu~]# yum install -y pcre-devel openssl-devel
准备编译配置文件
[root@hzitedu~]# cd /usr/local/src/nginx-1.8.0/
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-file-aio \
--with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-
protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

参数详解:

--prefix= 指向安装目录
--sbin-path 指向(执行)程序文件(nginx)
--conf-path= 指向配置文件(nginx.conf)
--error-log-path= 指向错误日志目录
--http-log-path= 指向访问日志
--pid-path= 指向pid文件(nginx.pid)
--lock-path= 指向lock文件(nginx.lock)(安装文件锁定,防止安装文件被别人利用,或自己误操
作。)
--user= 指定程序运行时的非特权用户
--group= 指定程序运行时的非特权用户组
--with-http_ssl_module 启用ngx_http_ssl_module支持(使支持https请求,需已安装
openssl)
--with-http_flv_module 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文
件)
--with-http_sub_module 启用ngx_http_sub_module支持(允许用一些其他文本替换nginx响应中的
一些文本)
--with-http_gzip_static_module 启用ngx_http_gzip_static_module支持(在线实时压缩输出
数据流)
--http-client-body-temp-path= 设定http客户端请求临时文件路径
--http-proxy-temp-path= 设定http代理临时文件路径
--http-fastcgi-temp-path= 设定http fastcgi临时文件路径
--http-uwsgi-temp-path= 设定http uwsgi临时文件路径
--http-scgi-temp-path= 设定http scgi临时文件路径
--with-pcre 启用pcre库

4、编译并安装

[[email protected]]# make && make install

5、为nginx提供SysV init脚本

 vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

6、启动nginx

[root@hzitedu~]# systemctl start nginx
[root@hzitedu~]# systemctl status nginx
[root@hzitedu~]# netstat -lnpt | grep 80
tcp    0   0 0.0.0.0:80       0.0.0.0:*        LISTEN  
4380/nginx: master      
[root@hzitedu~]# lsof -i :80
COMMAND PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
nginx  4380 root  6u IPv4 34963   0t0 TCP *:http (LISTEN)
nginx  4382 nginx  6u IPv4 34963   0t0 TCP *:http (LISTEN)

搞定,请大佬们赐教,喜欢就关注我哦!

你可能感兴趣的:(NGINX)