欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx系列(一)CentOS7.2安装与卸载Nginx

程序员文章站 2022-05-17 16:45:25
...

一、安装Nginx

1.安装gcc

  gcc(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的*软件,也是 GNU计划的关键部分。
  用gcc编译C/C++代码时,它会试着用最少的时间完成编译并且编译后的代码易于调试。易于调试意味着编译后的代码与源代码有同样的执行顺序,编译后的代码没有经过优化。
  nginx是C语言开发的,安装过程需要将官网的代码进行编译,所以需要先安装gcc环境。

使用 yum install gcc-c++ 进行安装

2.安装pcre

  pcre(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库,具有解析速度快的优点。nginx对正则的解析依赖于该库,所以安装nginx之前需要安装pcre。

使用 yum install -y pcre pcre-devel安装

3.安装zlib

  zlib库提供了很多种解压和压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip。

使用 yum install -y zlib zlib-devel安装

4.安装openssl

  OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。由于nginx支持HTTPS,所以需要提前安装。

使用 yum install -y openssl openssl-devel安装

5.安装nginx

  1)下载安装包安装

1. wget下载安装包
wget -c https://nginx.org/download/nginx-1.15.1.tar.gz
2.解压安装包
tar -zxvf nginx-1.15.1.tar.gz
3.配置nginx(进入nginx解压目录)
执行 ./configure
4.执行命令
make && make install

  安装成功后,在local中会多出来一个nginx文件夹,其中包括nginx的启动脚本,配置文件等。

相关操作命令
./nginx 启动nginx
./nginx -s stop 停止服务
./nginx -s reload 重启服务
./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

  以上操作都必须在目录nginx/sbin/下面操作,非常的不方便。如果想要使用systemctl进行管理,可以将nginx加入服务项。由于过程比较复杂,所以我们推荐使用第二种安装方式。

  2)yum安装

1.安装epel仓库
yum -y install epel-release
2.安装nginx
yum -y install nginx
3.启动nginx
systemctl start nginx
4.允许http通信
firewall-cmd --permanent --zone=public --add-service=http
5.允许https通信
firewall-cmd --permanent --zone=public --add-service=https
6.重启防火墙
firewall-cmd --reload

二、卸载Nginx

1.停止nginx服务
systemctl nginx stop
2.删除Nginx的自动启动
chkconfig nginx off
3.查找nginx相关文件夹
find -name "nginx"
4.删除相关文件夹
rm -rf XXX
5.使用yum清理
yum remove nginx

三、安装过程中遇到的问题

  由于我之前是使用安装包安装的nginx,每次启动和重启都很不方便,所以我改成了使用yum安装,当我将之前的nginx.conf文件复制过来重启的时候,报了一个错。

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

然后用 systemctl status nginx查看详情

Nginx系列(一)CentOS7.2安装与卸载Nginx
  刚开始以为是端口占用报的错,但是发现不是端口的问题。之后又仔细的看了看报错信息,注意倒数第二行, nginx: [emerg] open() “/usr/share/nginx/logs/hp_access.log” failed (2: No such file or directory)。
  这是之前的项目存放的日志,现在不存在了,所以会报错,将配置文件中的配置项删掉,启动成功。

调错过程中常用的一些命令

1.查看端口进程
netstat -ntpl
2.列出正在运行的服务
systemctl
3.查看服务列表状态(static 它是指对应的 Unit 文件中没有定义[Install]区域,因此无法配置为开机启动服务。)
systemctl list-units --type=service 
4.列出所有已经安装的服务及状态
systemctl list-unit-files
5.在开机时启用一个服务(service可以省略)
systemctl enable xxx.service
6.在开机时禁用一个服务
systemctl disable xxx.service
7.查看服务是否开机启动
systemctl is-enabled xxx.service
8.查看已启动的服务列表
systemctl list-unit-files | grep enabled
9.查看启动失败的服务列表
systemctl --failed


10.列出nginx的进程号
ps -ef | grep nginx
11.禁止/开启一个服务
systemctl disable/enable xxx

四、我的nginx.conf文件

user root;
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

worker_rlimit_nofile 65535;
events {
    worker_connections  10240;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
        
    client_header_buffer_size 512k;
    large_client_header_buffers 4 512k;
    proxy_read_timeout 240s;
    #gzip  on;


    upstream backend {
        server localhost:8080; # Solo 监听端口
    }

    server {
        listen       80;
        server_name  bolg.huyaxing.site; # 博客域名

        access_log off;

        location / {
            proxy_pass http://backend$request_uri;
            proxy_set_header  Host $host:$server_port;
            proxy_set_header  X-Real-IP  $remote_addr;
            client_max_body_size  10m;
        }
    }

    server {
        listen 80; #监听的端口
        server_name weixin.huyaxing.site; #监听的域名
        location / {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://weixin.huyaxing.site:9980; #跳转的url和接口
        }
        access_log logs/hp_access.log; #生成的日志,只需修改:jira_access.log,文件自动生成。
    }

}

相关标签: nginx