Nginx系列(一)CentOS7.2安装与卸载Nginx
一、安装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: [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,文件自动生成。
}
}
上一篇: Vulnhub靶场篇:Vulnix
下一篇: 渗透测试学习之靶机DC-2