CentOS7下安装nginx及nginx配置
安装nginx
首先需要安装nginx插件,然后再安装nginx。
1、安装gcc
gcc是linux下的编译器,它可以编译 C,C++,Ada,Object C和Java等语言,但是一般centOS7已经安装好了,如果不确定可以先查看其版本:gcc -v
,如果出现版本号说明已经安装了:
如果没有的话,输入命令:yum -y install gcc
进行安装。
2、pcre、pcre-devel安装
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库:yum install -y pcre pcre-devel
。
3、zlib安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip:yum install -y zlib zlib-devel
。
4、安装openssl
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上:yum install gcc openssl-devel pcre-devel -y
,检验安装结果:pcre-config --version
。
5、下载nginx安装包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
6、解压
最好先创建一个文件夹,来安装nginx
创建文件夹
我习惯在/usr/local下建一个java的文件夹
cd /usr/local
mkdir java
解压安装包到/usr/local/java
首先回到下载nginx压缩包的目录下,然后解压,由于我是直接下载在root下,所以:
cd
tar -zxvf nginx-1.9.9.tar.gz -C /usr/local/java
配置
1、首先到解压nginx目录下
cd /usr/local/java/nginx-1.9.9/
2、这一步骤可以形成nginx文件
查看自己需要得配置,建议看看官网的参数说明根据你需要的情景使用配置,
./configure --help
个人案例,执行两个命令:
./configure --prefix=/server/nginx
出现如图所示则说明成功。
make && make installc
出现如图所示则说明成功。
回到cd /server可以看到一个nginx文件
3、cd /server/nginx/conf
配置nginx的配置文件nginx.conf文件,主要也就是端口:vi nginx.conf
编辑完事后按esc键后输入wq!保存并退出。
4、启动nginx服务
切换目录到/server/nginx/sbin下面,启动nginx命令:./nginx
,查看nginx服务是否启动成功:
ps -ef | grep nginx
5、测试启动
cd /server/nginx/sbin //这个是配置安装包时候的目录
./nginx //启动
./nginx -s stop //停止
./nginx -s quit //退出
./nginx -s reload //重启
6、主机浏览器无法访问问题
云服务器Linux,安装配置完成nginx后,如果主机无法访问。则服务器没有放行Nginx默认端口80
解决办法:
(1)、查看防火墙对外开放的端口firewall-cmd --zone=public --list-ports
(2)、开启 web 端口firewall-cmd --permanent --add-port=80/tcp
(3)、重启 firewallfirewall-cmd --reload
从这张图片就可以看出来,这是本人重新装的另一台服务器,之前只开通了3306端口而且nginx目录是/user/local/nginx。
7、配置 systemctl 命令
centos7服务管理都是通过systemctl命令的,所以我们可以添加一下对应nginx的service服务,systemctl服务储存地址 :/usr/lib/systemd/system/
执行以下命令新建nginx服务:vim /usr/lib/systemd/system/nginx.service
并录入以下内容:
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/server/nginx/sbin/nginx
ExecReload=/server/nginx/sbin/nginx -s reload
ExecStop=/server/nginx/sbin/nginx -s stop
然后按下esc键输入wq!完成输入(在这里不得不吐槽xshell工具,最好按下esc键后先多输入几下“!”,真不知道为什么直接输入wq!居然能把q当作命令???)
配置说明:
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
要服务生效,需要重新加载服务
systemctl daemon-reload
现在可以使用systemctl命令来对nginx进行操作了(当然,要先把之前启动的nginx服务退了,不然就会报一下的错误Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
)
systemctl start nginx //启动
systemctl stop nginx //停止
systemctl reload nginx //重启 可以不用停止nginx服务,使修改的配置生效
systemctl restart nginx //重启
systemctl enable nginx //设置开机启动
systemctl disable nginx //禁用开机启动
systemctl status nginx //查看服务状态
获取所有正在运行的服务
systemctl list-units --type=service
启动后可以访问一下自己的IP,依旧可以访问说明成功了。