一、安装前的准备:
- 更新系统软件:yum update
- 查看是否已安装wget: rpm -qa wget 否则安装:yum install –y wget
- 查看是否已安装编译器: rpm -qa gcc 否则安装:yum install -y gcc gcc-c++
二、安装Nginx
-
安装nginx依赖包
nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:yum -y install pcre pcre-devel
nginx的各种模块中需要使用gzip压缩:yum -y install zlib zlib-devel
安全套接字层密码库:yum -y install openssl openssl-devel - 下载nginx包并解压(到/usr/local/src目录中)
cd /usr/local/src
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz -
编译安装(到/usr/local/nginx目录中)
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
--with-http_ssl_module #HTTPS模块
--with-stream #stream模块,用来实现四层协议的转发、代理或者负载均衡等
--with-stream_ssl_module #支持https的stream模块
--with-http_stub_status_module #状态监控模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_module --with-http_stub_status_module
make
make install - 创建并设置nginx运行账号:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /usr/local/nginx/conf
vim nginx.conf,设置user参数如下:
user nginx nginx
日志记录配置
log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $upstream_response_time $request_time';
access_log logs/access.log main;
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #看个人需要
启动一次nginx,,,,然后再平滑重起,要不然可能出现以下问题
【问题】nginx –s reload出错:nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
【解决办法】/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- 设置nginx为系统服务
vim /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 stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
-
设置nginx开机自启动:systemctl enable nginx.service
- 开启nginx服务:systemctl start nginx.service
查看nginx是否启动成功:ps aux | grep nginx
在浏览器中访问测试:http://localhost
出现以下界面则表示可以成功访问:
- 防火墙开放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测试是否可以成功访问。
转载于:https://blog.51cto.com/python20101030/2341422