yum安装
- 更新yum源
Nginx官方yum源
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
- 安装软件
yum install -y nginx
- 出现异常则先清除缓存
yum clean all
- 启动/开机自启
systemctl start nginx
systemctl enable nginx
编译安装
- 下载依赖
yum install openssl-devel zlib-devel pcre-devel -y
- 下载源码包
cd /server/tools/
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xf nginx-1.18.0.tar.gz
cd nginx-1.18.0
- 创建虚拟账号
useradd -s /sbin/nologin -M nginx
#必要时需指定账号id
- 编译
- 编译安装
./configure --prefix=/application/nginx-1.18.0 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
参数说明
"–with-XXX_module “选项表示指明安装对应的模块,” --without-XXX_module"选项表示指明不安装对应的模块。
- 创建软链接
ln -s /application/nginx-1.18.0/ /application/nginx
#将Nginx安装路径通过软链接的方式更改为 /application/nginx/ ,方便人员使用.
#安装时指定版本号路径是为了便于查看分区当前使用的Nginx版本,也方便以后升级.
#内部人员使用路径 /application/nginx
#当Nginx软件升级编译成带有新版本号的版本后,删除原来的软链接,再重新建立新的到/application/nginx 的软链接就好.
#程序装如果有引用Nginx路径的地方,不需要做任何更改,因为升级后访问路径还是 /application/nginx
- 环境变量
vim /etc/bashrc
export PATH=/application/nginx/sbin/:$PATH
source /etc/bashrc
- 启动服务
- 检查安装结果
nginx –t #此步骤重要
systemctl start nginx
systemctl enable nginx
- 设置系统服务
vim nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx #nginx的安装目录
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置语法高亮:
cd nginx-1.18.0/
cp -r contrib/vim/* /usr/share/vim/vimfiles/
可能遇到的问题
- 无法访问
在外部使用浏览器时,访问地址有可能访问不到。
原因:没有放80端口,防火墙与selinux问题.
- 开放80端口
- CentOS7
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld.service
-
- CentOS6
iptables -F #清除防火墙规则
/etc/init.d/iptables stop #关闭防火墙
chkconfig iptables off #关闭防火墙开机自启
Chkconfig –list | grep iptables #查看iptables 是否开启:
iptables 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:关闭 6:关闭
开放端口80,22,3306,8080命令
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save #保存之前输入已开放端口号
/etc/init.d/iptables status #查看打开端口
测试环境可将防火墙关闭
service firewalld stop #centos6
systemctl stop firewalld #centos7
- 关闭SElinux
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce
故障总结
- . 确认本地DNS配置
- . 确认主机网络配置
- . 服务端服务是否正常
- . 是否有安全服务阻止
- . 可能和浏览器有关系