Linux系统下安装Nginx,并反向代理运行vue项目

本示列Linux系统为CentOS 7.9

nginx安装包下载地址:http://nginx.org/en/download.html,注意下载Stable version

1. 下载源码包nginx-1.20.2.tar.gz

2. 上传源码包到Linux系统

先 cd /usr/local 创建一个文件夹 mkdir nginx

将源码包上传到 /usr/local/nginx 目录下

3. 解压源码包

进入nginx目录 cd  /usr/local/nginx

执行命令:tar -zxvf nginx-1.20.2.tar.gz

4. 编译安装nginx

进入nginx目录 cd /usr/local/nginx/nginx-1.20.2

a. 配置基本信息

执行命令(推荐):./configure --prefix=/usr/local/nginx

执行命令:./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre

##配置configure --prefix 代表编译安装的路径, --with-http_ssl_module 安装支持https,--with-http_stub_status_module 支持nginx状态查询,

--with-pcre 为了支持rewrite重写功能,必须制定pcre

编译如果提示./configure: error: the HTTP rewrite module requires the PCRE library. 则执行yum -y install pcre-devel后重新编译。

提示./configure: error: the HTTP gzip module requires the zlib library. 则执行yum install -y zlib-devel后重新编译。

提示./configure: error: the HTTP cache module requires md5 functions from OpenSSL library. You can either disable the module by using
–without-http-cache option, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using
–with-http_ssl_module –with-openssl= options. 则执行yum -y install openssl openssl-devel后重新编译。

b. 编译

执行命令:make

c. 安装

执行命令:make install

5. 配置修改nginx.conf

先cd /usr/local/nginx目录

#打开配置文件

vim /usr/local/nginx/conf/nginx.conf

将默认端口号改成8009,因为可能80端口已被占用了,我们选择修改nginx默认端口,localhost修改为你服务器ip地址。

按 i 进入编辑,编辑后按 Esc 键退出,然后输入 :wq 保存。

注:修改配置文件后需要重启nginx服务才能生效。

6. 启动nginx

进入sbin文件夹下,cd /usr/local/nginx/sbin

执行命令:./nginx

注:后面设置nginx开机自动启动服务后,通过服务来启动就不要用这种方式启动了。

如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed

则需要指定nginx配置文件启动方式,运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

再次启动即可!我这里没出现上述错误,所以可以忽略

7. 查看nginx进程是否启动

执行命令:ps -ef|grep nginx

如上图出现master主进程和worker进程则启动成功

#查看本机监听端口

netstat -tunlp|grep nginx

8. 关闭nginx 命令 

(强制杀死进程-9)kill -9 181922(进程号 上面的master)   则关闭nginx 

9. 停止nginx

进入sbin文件夹下,cd /usr/local/nginx/sbin

执行命令:./nginx -s stop

疑问,我发现执行停止命令后nginx还能访问,还需要将下面的worker进程也杀掉才行,不知道为啥!!

(强制杀死进程-9)kill -9 181923(进程号 上面的worker)   则停止nginx

10. 重启nginx

进入sbin文件夹下,cd /usr/local/nginx/sbin

执行命令:./nginx -s reload

11. 防火墙开放nginx端口号:

#查看防火墙状态
firewall-cmd --state
#开放端口
firewall-cmd --zone=public --add-port=8009/tcp --permanent
#重启防火墙
firewall-cmd --reload
#查看防火墙开放的端口
firewall-cmd --list-ports

12.访问服务器ip查看

 

安装完成一般常用命令

进入安装目录中,

执行命令: cd /usr/local/nginx/sbin

启动,关闭,重启,命令:

./nginx 启动

./nginx -s stop 关闭(推荐)

./nginx -s quit 退出

./nginx -s reload 重启

设置nginx开机自动启动

##文件不存在,则会自动创建此文件

vim /etc/systemd/system/nginx.service

再添加如下内容:

[Unit]
Description=nginx-server
After=syslog.target network.target remote-fs.target nss-lookup.target

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

[Install]
WantedBy=multi-user.target

注意:一定要注意脚本中的nginx的路径是不是安装后的nginx的路径!!!

​配置完脚本文件之后,重新加载一下系统服务:

systemctl daemon-reload

启动nginx服务:

systemctl start nginx.service

设置开机自启动:

systemctl enable nginx.service

systemctl常用命令

其中.service 可以省略

systemctl daemon-reload #此命令用于重新加载一下系统服务(修改脚本后操作)
systemctl start nginx.service #启动nginx服务
systemctl stop nginx.service #停止nginx服务
systemctl enable nginx.service #设置开机自启动
systemctl disable nginx.service #停止开机自启动
systemctl status nginx.service #查看服务当前状态
systemctl restart nginx.service #重新启动nginx服务
systemctl list-units --type=service #查看所有已启动的服务

 

posted @ 2022-04-15 15:22  以德为先  阅读(643)  评论(0编辑  收藏  举报