linux 系统下四种nginx安装方法
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。本文介绍三种基于linux环境下的安装nginx的方法,安装版本为现阶段官网推出的最新稳定版本。
环境说明
| 软件项目 | 版本 |
|---|---|
| 操作系统 | Centos7.9 |
| nginx | 1.20.2 |
| docker | 20.10.9 |
![]() |
其中yum、源码安装、docker安装依赖互联网接入,rpm可以离线安装。
安装之前查看端口,默认nginx使用的80端口,如果80端口已经占用启动过程中可能会报错,针对端口占用情况,可以停止占用端口的服务或者nginx改用其他端口启动,停用和改端口方法不再本文介绍。参考《Centos7防火墙设置》
netstat -nltp | grep 80
nginx添加yum repro库中
# 下载nginx包
wget https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 建立nginx的yum仓库
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
查看nginx信息
yum info nginx
查看yum源仓库中nginx版本
yum --showduplicates list nginx | expand
安装nginx,默认安装最新的稳定版本 及 nginx 1.20.2
yum install nginx
Nginx 源码包安装步骤相比其他安装方法比较繁琐,但是操作不复杂,需要提前安装一些 Nginx 依赖库。
1、安装gcc环境
编译时依赖gcc环境
yum -y install gcc gcc-c++ autoconf automake make
2、安装 pcre
提供nginx支持重写功能
yum -y install pcre pcre-devel
3、安装zlib
zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
yum -y install zlib zlib-devel make libtool
4、安装openssl
安全套接字层密码库,用于通信加密
yum -y install openssl openssl-devel
手动创建用户和用户组
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
官网下载nginx源码包
wget https://nginx.org/download/nginx-1.20.2.tar.gz
解压
tar -zxvf nginx-1.20.2.tar.gz
编译目录
cd nginx-1.20.2
# 检查平台安装环境
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
参数说明:
–prefix=/usr/local/nginx
#编译安装目录
–user=nginx
#所属用户nginx
–group=nginx
#所属组nginx
–with-http_stub_status_module
#该模块提供nginx的基本状态信息
–with-http_ssl_module
# 支持HTTPS
编译源码并安装
make # 编译
make install # 安装
nginx编译安装完成以后,修改nginx.conf
user nginx nginx;
启动服务
/usr/local/nginx/sbin/nginx
重新加载服务
/usr/local/nginx/sbin/nginx -s reload
停止服务
/usr/local/nginx/sbin/nginx -s stop
查看进程
ps -ef | grep nginx
验证
curl IP

nginx版本信息查看
/usr/local/nginx/sbin/nginx -V

nginx配置服务
目前nginx都是通过命令执行的,在nginx运行过程中,需要nginx作为系统的服务运行。以systemctl命令运行服务
配置服务文件
vi /lib/systemd/system/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
创建服务
systemctl enable nginx.service

使用服务命令
systemctl status nginx

官网下载安装包
wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm

rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm

使用root账号创建nginx用户和组
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
授权列表清单给nginx
chown -R nginx:nginx /etc/log/logrotate.d/nginx
chown -R nginx:nginx /etc/nginx
chown -R nginx:nginx /etc/nginx/conf.d
chown -R nginx:nginx /etc/config.d/default.conf
chown -R nginx:nginx /etc/nginx/fastcgi_params
chown -R nginx:nginx /etc/nginx/mime.types
chown -R nginx:nginx /etc/nginx/modules
chown -R nginx:nginx /etc/nginx/nginx.conf
chown -R nginx:nginx /etc/nginx/scgi_params
chown -R nginx:nginx /etc/nginx/uwsgi_params
chown -R nginx:nginx /usr/lib/systemd/system/nginx-debug.service
chown -R nginx:nginx /usr/lib/systemd/system/nginx.service
chown -R nginx:nginx /usr/lib64/nginx
chown -R nginx:nginx /usr/lib64/nginx/modules
chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx
chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx/check-reload
chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx/upgrade
chown -R nginx:nginx /usr/sbin/nginx
chown -R nginx:nginx /usr/sbin/nginx-debug
chown -R nginx:nginx /usr/share/doc/nginx-1.20.1
chown -R nginx:nginx /usr/share/doc/nginx-1.20.1/COPYRIGHT
chown -R nginx:nginx /usr/share/man/man8/nginx.8.gz
chown -R nginx:nginx /usr/share/nginx
chown -R nginx:nginx /usr/share/nginx/html
chown -R nginx:nginx /usr/share/nginx/html/50x.html
chown -R nginx:nginx /usr/share/nginx/html/index.html
chown -R nginx:nginx /var/cache/nginx
chown -R nginx:nginx /var/log/nginx
启动nginx
systemctl start nginix
验证
curl IP
卸载 nginx
# 查看nginx安装文件
rpm -qa | grep nginx
nginx-1.20.2-1.el7.ngx.x86_64
# 卸载nginx安装文件
rpm -e nginx-1.20.2-1.el7.ngx.x86_64
docker安装可以选择在线和离线安装,在线安装使用docker命令安装,离线安装使用docker安装完毕后,打包至离线服务器进行安装,本文以在线安装为例进行展开操作。docker 安装在此不做过多介绍,docker安装参考《centos7 设置阿里云yum源、docker源和docker镜像加速》中的docker安装部分
# 获取nginx镜像
docker pull nginx:1.21.6
# 查看镜像
docker images
运行nginx
docker run --name nginx -p 80:80 -d nginx
使用过程中会挂载 配置文件、站点、日志信息,在现有基础上新增挂载参数即可。
验证
curl IP
常用操作是基于nginx正确安装的基础上的操作
启动nginx
systemctl start nginx
停止 nginx
systemctl stop nginx
重启 nginx
systemctl restart nginx
重新加载配置
systemctl reload nginx
设置开机启动
systemctl enable nginx
关闭开机启动设置
systemctl disable nginx
查看版本
nginx -V

| 目录 | 说明 |
|---|---|
| /etc/nginx/ | 所有相关配置文件目录 |
| /etc/nginx/nginx.conf | nginx主配置文件 |
| /etc/nginx/conf.d/ | 独立的nginx服务配置文件目录 |
| /var/log/nginx/ | nginx日志文件目录 |
| /var/log/nginx/access.log | 访问日志(IP/浏览器信息/处理时间/请求URL) |
| /var/log/nginx/error.log | 错误日志(服务器和请求处理中的错误信息) |
| /usr/share/nginx/html | 默认的站点位置,可以根据实际情况进行设置调整 |
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs