本文记录Centos7上安装Nginx详细步骤
1、安装依赖包
[root@localhost ~] yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl—devel
2、下载Nginx(地址:http://nginx.org/en/download.html)
3、下载完成后使用MobaXterm上传到服务器 /user/install目录下
4、解压Nginx
[root@localhost ~] cd /user/install
[root@localhost soft] tar -zxvf nginx-1.17.0.tar.gz -C /opt
5、编译和安装Nginx
[root@localhost opt] cd nginx-1.17.0/
#指定安装在/usr/local/nginx目录下,并增加http_ssl_module模块(如不需要可不加这个配置)
[root@localhost nginx-1.17.0] ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@localhost nginx-1.17.0] make && make install
6、查看Nginx版本号
[root@localhost ~] cd /usr/local/nginx/sbin/
[root@localhost sbin] ./nginx -h
7、启动和停止nginx
//启动
[root@localhost sbin] ./nginx
//停止
[root@localhost sbin] ./nginx -s stop
//重启
[root@localhost sbin] ./nginx -s reload
8、验证是否安装成功
(1)输入命令后,没有任何提示,那我们如何知道Nginx服务已经启动了哪?可以使用Linux的组合命令,进行查询服务的运行状况。
ps aux | grep nginx
如果启动成功会出现如下图片中类似的结果
(2)在浏览器地址栏输入服务器的IP(http://192.168.58.7),出现下图界面表示安装成功
二、配置Nginx
1、配置文件分开
在Linux中不同的用户都可能用到Nginx,如果不同的用户无法达成一个对nginx.conf编写标准,势必会导致nginx.conf里的内容变的相当混乱,极难维护。所以新建一个文件夹,这个文件夹中分放不同用户所需要反向代理的配置文件。
[root@localhost /]vim /usr/local/nginx/conf/nginx.conf
nginx.conf 文件尽量不做修改,只需在最末尾加上 include /usr/local/nginx/conf.d/*.conf;
2、编辑配置文件
/usr/local/nginx 目录下新建文件夹conf.d
,用于存放模块配置
mkdir /usr/local/nginx/conf.d
新建文件yimall.conf,添加内容如下
server {
listen 80;
server_name 192.168.197.90;
charset utf-8;
location /yimall {
alias /www/web/www.yimall.pro/dist;
try_files $uri $uri/ /index.html last;
index index.html;
}
access_log /www/logs/www.yimall.log;
error_log /www/logs/www.yimall.error.log;
}
向/www/web/www.yimall.pro/ 文件夹下上传打包好的vue dist文件夹,测试访问 http://192.168.197.90/yimall/
Tips:按照上述nginx配置,需要注意vue项目里的配置:
1.router的index.js中
mode: 'history',
base:'/yimall/'
2.vue.config.js中
// 部署应用时的基本 URL
publicPath: '/yimall/',
3、查看端口号
在默认情况下,Nginx启动后会监听80端口,从而提供HTTP访问,如果80端口已经被占用则会启动失败。我么可以使用 netstat -tlnp
命令查看端口号的占用情况。
三、配置开机启动
1、切换到/lib/systemd/system/目录,创建nginx.service文件
cd /lib/systemd/system/
vim nginx.service
内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2、加入开机自启动
systemctl enable nginx
如果不想开机自启动了,可以使用下面的命令取消开机自启动
systemctl disable nginx
查看nginx状态
systemctl status nginx
如果没有正常启动,检查80端口和防火墙再重启nginx
pkill -9 nginx
systemctl start nginx
systemctl status nginx
3、服务的启动/停止/刷新配置文件/查看状态
启动nginx服务 systemctl start nginx.service
停止服务 systemctl stop nginx.service
重新启动服务 systemctl restart nginx.service
查看所有已启动的服务 systemctl list-units --type=service
查看服务当前状态 systemctl status nginx.service
设置开机自启动 systemctl enable nginx.service
停止开机自启动 systemctl disable nginx.service
4、一个常见的错误
Warning: nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units.
直接按照提示执行命令systemctl daemon-reload 即可
systemctl daemon-reload