介绍:
Nginx是一个高性能的HTTP和反向代理服务器,以及IMAP、POP3、SMTP代理服务器。它是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,首个公开版本于2004年10月4日发布。Nginx以事件驱动的方式编写,具有非常好的性能,并且它也是一个高效的反向代理服务器和负载均衡服务器。
官网:https://nginx.org/
目录
编写systemd单元文件管理nginx服务,以便在任何目录下都可以使用nginx命令
Nginx源码编译安装配置:
1.下载和安装
在Nginx的官网的下载页面中(http://nginx.org/en/download.html),就展示了当前Nginx版本,并提供了下载的连接。 如下:
下载Stable version这个版本,这个版本是最新稳定版。
2.安装依赖包
由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库。
命令:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
下载wget命令:yum install wget
下载nginx安装包:wget https://nginx.org/download/nginx-1.22.1.tar.gz
解压:tar -zxvf nginx-1.22.1.tar.gz
3.配置Nginx编译环境
--prefix 指定的目录是我们安装nginx的目录
即:/usr/local/nginx
4.编译和安装
make 和 make install 是Linux开发套件中常用的命令,主要用于自动化编译和安装程序。
命令:make & make install
5.目录结构
进入安装目录(/usr/local/nginx)输入tree命令
没有tree命令需要进行安装,安装命令:sudo yum install tree
6.查看Nginx是否成功安装
查看版本:
检查配置文件:
启动命令:./nginx
Nginx源码编译安装配置完成啦!
浏览器进入nginx页面:
正常访问需要关闭防火墙:systemctl stop firewalld
进入网址http://ip地址
常见的问题及解决:
- 文件权限问题:
- 确保在编译和安装过程中有足够的权限。你可能需要以root用户身份执行某些命令,或者使用
sudo
来获取必要的权限。 - 检查文件和目录的权限设置,确保Nginx用户和组对所需的文件和目录具有适当的读写权限。
- 确保在编译和安装过程中有足够的权限。你可能需要以root用户身份执行某些命令,或者使用
- 配置文件问题:
- 在安装Nginx后,确保正确配置了Nginx的配置文件。默认的配置文件通常位于
/usr/local/nginx/conf/nginx.conf
。根据你的需求进行必要的修改。 - 检查配置文件中的语法错误或配置不一致之处。可以使用
nginx -t
命令来测试配置文件的语法是否正确。
- 在安装Nginx后,确保正确配置了Nginx的配置文件。默认的配置文件通常位于
- 端口冲突:
- 确保Nginx配置的监听端口没有被其他服务占用。可以使用
netstat
或ss
命令来检查端口的使用情况。 - 如果发现端口冲突,需要更改Nginx配置中的监听端口或停止占用该端口的其他服务
- 使用sudo kill -9<PID>,PID为实际的进程ID,然后在重启nginx服务
- 确保Nginx配置的监听端口没有被其他服务占用。可以使用
编写systemd单元文件管理nginx服务,以便在任何目录下都可以使用nginx命令
在/etc/systemd/system或/usr/lib/systemd/system 目录下创建一个nginx.service文本文件,设置如下内容:
[Unit]
Description=nginx -high performance web server
Documentation=http://nginx.org/en/docs
After-=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
systemctl daemon-reload命令重载配置
systemctl start nginx.service 启动服务
systemctl enable nginx.service 设置开机自启
systemctl status nginx.service 查看nginx服务状态
希望对大家有所帮助!希望各位看官给一个免费的小红心吧!