`
xupo
  • 浏览: 214979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RHEL5 利用 CentOS的yum 安装openssl gc++及Nginx

阅读更多

1.确保RHEL5中已经安装了yum
[root@xupo~]# rpm -qa |grep yum
2.修改源配置文件 #vim /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-5-Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever5&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://ftp.sjtu.edu.cn/centos/5/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#released updates
[update]
name=CentOS-5-Updates
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=updates
baseurl=http://ftp.sjtu.edu.cn/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#packages used/produced in the build but not released
[addons]
name=CentOS-5-Addons
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=addons

baseurl=http://ftp.sjtu.edu.cn/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#additional packages that may be useful
[extras]
name=CentOS-5-Extras
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=extras

baseurl=http://ftp.sjtu.edu.cn/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5-Plus
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=centosplus
baseurl=http://ftp.sjtu.edu.cn/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#contrib - packages by Centos Users
[contrib]
name=CentOS-5-Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=contrib
baseurl=http://ftp.sjtu.edu.cn/centos/5/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

# vi dag.repo
[dag]
name=Dag RPM Repository for RHEL5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=1
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt

 
3. 导入key
 #rpm --import http://ftp.sjtu.edu.cn/centos/5/os/x86_64/RPM-GPG-KEY-CentOS-5
  #rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
注:这是两个key,导入一个就行了。

4. 运行,测试
 #yum update

5.#yum clean all

若以上方法不可行,可以尝试下面的:

修改源配置文件 #vim /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/$basearch/Debuginfo/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-debuginfo-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Debug
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/$basearch/Debuginfo/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[base]
name=Red Hat Enterprise Linux $releasever -Base
baseurl=http://ftp.twaren.net/Linux/CentOS/5/os/$basearch/
gpgcheck=1
gpgkey=http://ftp.twaren.net/Linux/CentOS/RPM-GPG-KEY-CentOS-5
[update]
name=Red Hat Enterprise Linux $releasever -Updates
baseurl=http://ftp.twaren.net/Linux/CentOS/5/updates/$basearch/
gpgcheck=1
gpgkey=http://ftp.twaren.net/Linux/CentOS/RPM-GPG-KEY-CentOS-5
[extras]
name=Red Hat Enterprise Linux $releasever -Extras
baseurl=http://ftp.twaren.net/Linux/CentOS/5/extras/$basearch/
gpgcheck=1
gpgkey=http://ftp.twaren.net/Linux/CentOS/RPM-GPG-KEY-CentOS-5
[addons]
name=Red Hat Enterprise Linux $releasever -Addons
baseurl=http://ftp.twaren.net/Linux/CentOS/5/addons/$basearch/
gpgcheck=1 
gpgkey=http://ftp.twaren.net/Linux/CentOS/RPM-GPG-KEY-CentOS-5

 
然后
#yum update
#yum clean all

 

 

开始安装gc++(注意,在安装nginx的依赖pcre时出现./libtool: line 990: g++: command not found错误时,往往是由于少了此包造成的)

#yum -y install gcc+ gcc-c++

 

开始安装openssl :

#yum install openssl  (很快你就发现openssl实际上是不需要安装的)

 

 

 

 

 

下面开始安装nginx

 

安装pcre
[root@localhost soft]#tar -zxvf pcre-8.01.tar.gz
[root@localhost soft]#cd pcre-8.01
[root@localhost pcre-8.01]#./configure
[root@localhost pcre-8.01]#make && make install
[root@localhost pcre-8.01]#cd ..
[root@localhost soft]#

 

安装nginx
[root@localhost soft]#tar -zxvf nginx-0.8.49.tar.gz
[root@localhost soft]#cd nginx-0.8.49
[root@localhost nginx-0.8.49]#./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --with-openssl=/usr/lib/openssl/(其实openssl路径应该填gz包解压后的地址,见附)
如果出现如下错误:

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using –without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using –with-zlib=<path> option.

[root@rhel nginx-1.0.5]# yum install -y zlib-devel

 


[root@localhost nginx-0.8.49]#make
[root@localhost nginx-0.8.49]#make install
[root@localhost nginx-0.8.49]#useradd nginx   //编译时指定了默认用户和组为nginx,所以还要创建一下。

[root@localhost nginx-0.8.49]# cd /usr/sbin
[root@localhost sbin]# nginx   //现在你访问就可以看到“welcome to nginx”的页面了

 

如果启动出错:nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)
则需要创建这个目录

 mkdir /var/tmp/nginx
mkdir /var/tmp/nginx/client

如果说用户无法运行,则

vim /etc/nginx/nginx.conf

将#user nobody

改成user nobody

 

这里的nginx是通过下载gz包,解压后安装完成的,如果用yum安装nginx包,有文章介绍如下:

 

Nginx (pronounced “Engine X”) is a lightweight web server that offers speed and flexibility without all of the extra features that larger web servers like Apache offer. Although it is a free and open source application, CentOS does not offer the latest version in its default YUM repository. To install it, you need to add the EPEL (Extra Packages for Enterprise Linux) repository, which is part of the Fedora Project.

1. Install the EPEL repository:

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5Server/x86_64/epel-release-5-3.noarch.rpm(URL已失效)

2. Install nginx

# yum install nginx

3. You will be asked to install the gpg-key for EPEL. Answer yes

4. Start Nginx

# /etc/init.d/nginx start

5. Check the installation by going to your web server’s default site, either using your ip address or domain name.

 

 

附:常见问题

 

1.注意:OPENSSL不需要安装,只需要解压出来就行。不然在编译时会提示类似以下的错误:

make[1]: Entering directory `/root/nginx-0.7.65'
cd /server/openssl \
        && make clean \
        && ./config --prefix=/server/openssl/openssl no-shared no-threads \
        && make \
        && make install
make[2]: Entering directory `/server/openssl'
make[2]: *** No rule to make target `clean'. Stop.
make[2]: Leaving directory `/server/openssl'
make[1]: *** [/server/openssl/openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/root/nginx-0.7.65'
make: *** [build] Error 2


2.安装Nginx的时候,把openssl路径指定到解压出来的路径:

./configure --with-http_stub_status_module --with-http_ssl_module --with-openssl=/root/openssl-1.0.0 --with-http_gzip_static_module --with-http_stub_status_module --prefix=/usr/local/nginx

如果是64位服务器的需要vi /usr/local/nginx-0.7.65/objs/Makefile

-lcrypt /usr/local/openssl-1.0.0/.openssl/lib64/libssl.a /usr/local/openssl-1.0.0/.openssl/lib64/libcrypto.a -ldl -lz

之后make是一个漫长的等待时间

make install

3、生成RSA密钥的方法

openssl genrsa -des3 -out privkey.pem 2048
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:
openssl genrsa -out privkey.pem 2048
建议用2048位密钥,少于此可能会不安全或很快将不安全。

4、生成一个证书请求
openssl req -new -key privkey.pem -out cert.csr
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

5.Nginx配置中,需要修改的地方:

server {
        listen       443;
        server_name localhost;

        ssl                  on;
    ssl_certificate /usr/local/nginx/conf/cacert.pem;
    ssl_certificate_key /usr/local/nginx/conf/privkey.pem;
    server_name 192.168.10.70
ssl_session_timeout 5m;
}

6.在iptables中打开ssl使用到的443端口,重启iptables.

7.测试。访问时,发现有提示需要证书,应该成功了。
nginx   //启动时会报错:[emerg]: mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)
mkdir -p /var/tmp/nginx/client

 

 

 

nginx启动,重启,关闭命令

 

 

停止操作
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx

另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'

平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径

或者使用

/usr/nginx/sbin/nginx -s reload


注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf

或者

/usr/nginx/sbin/nginx -t

平滑升级
如果服务器正在运行的Nginx要进行升级、添加或删除模块时,我们需 要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行。
步骤1:
如 果升级Nginx程序,先用新程序替换旧程序文件,编译安装的话新程序直接编译到Nginx安装目录中。
步 骤2:执行命令
kill -USR2 旧版程序的主进程号或进程文件名
此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版 Nginx。新旧Nginx会同市运行,共同处理请求。
这时要逐步停止旧版 Nginx,输入命令:
kill -WINCH 旧版主进程号
慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版 工作进程。

此 时,我们可以决定使用新版还是恢复到旧版。
不重载配置启动新/旧工作进程
kill -HUP 旧/新版主进程号
从容关闭旧/新进程
kill -QUIT 旧/新主进程号
如果此时报错,提示还有进程没有结束就用下面命令先关闭旧/新工作进程,再关闭主进程号:
kill -TERM 旧/新工作进程号

这样下来,如果要恢复到旧版本,只需要上面的几个步 骤都是操作新版主进程号,如果要用新版本就上面的几个步骤都操作旧版主进程号就行了。

上面就是Nginx的一些基本的操作,希望以后Nginx能有更好的方法来处理这些操作, 最好是Nginx的命令而不是向Nginx进程发送系统信号。

 

分享到:
评论

相关推荐

    Linux 离线 安装Nginx必要环境, 包含openssl模块

    首先,你需要确保你的Linux系统是基于RPM(Red Hat Package Manager)的,比如CentOS、Fedora或RHEL,因为这些系统通常使用`yum`或`dnf`来管理软件包。如果你的系统是基于Debian或Ubuntu,那么应该使用`apt-get`或`...

    Linux离线安装nginx安装包

    - 在CentOS/RHEL系统中:`yum install gcc` - 在Ubuntu/Debian系统中:`apt-get install build-essential`,这会自动安装包括gcc在内的编译工具集。 3. **Nginx的安装** - 下载Nginx源码:`wget ...

    linux下安装Nginx所需依赖包

    总结一下,安装Nginx在Linux上的主要步骤包括:准备依赖包(GCC、PCRE、Zlib、OpenSSL)、安装Nginx、启动服务以及配置自动化启动。理解这些步骤可以帮助我们更好地管理和维护Nginx服务器,提高系统的稳定性和安全性...

    源码安装nginx+keepalived实现HA(高可用)

    ### 源码安装Nginx与Keepalived实现高可用集群 #### 一、概述 在本篇文章中,我们将详细介绍如何通过源码安装的方式部署Nginx与Keepalived来构建一个高可用(High Availability,简称HA)的Web服务集群。这种方式...

    Centos52+postfix+extmail搭建邮件系统

    然而,随着CentOS 5生命周期的结束,建议考虑升级到更现代的操作系统,如CentOS 8或使用RHEL,以获得更好的支持和安全性。同时,对于邮件系统的搭建,也要注意遵守相关的法规和标准,如SPF、DKIM和DMARC,以防止垃圾...

    RedHat 6.5离线安装openssl-devel顺序

    在Red Hat Enterprise Linux (RHEL) 6.5这样的老版本系统中,有时需要手动安装特定的软件包,比如`openssl-devel`,因为默认的软件仓库可能不包含最新或者特定版本的软件。`openssl-devel`是开发人员在构建需要使用...

    Linux离线安装Nginx资源包

    如果你使用的是RPM为基础的系统(如CentOS或Fedora),使用`yum`或`dnf`进行安装: ```bash sudo yum install epel-release sudo yum install gcc make zlib-devel pcre-devel openssl-devel ``` 有了这些基础工具...

    centos离线安装nginx所需的依赖资源

    在CentOS系统上离线安装Nginx是一个常见的需求,特别是在没有互联网连接或者网络环境受限的服务器上。本文将详细讲解如何在CentOS 7环境下,通过预先下载的依赖资源来实现Nginx的离线安装。以下是所需的关键知识点:...

    centos6.5安装nginx,gcc依赖包编译环境(含命令)

    在本文中,我们将深入探讨如何在CentOS 6.5 x64环境下安装Nginx web服务器,并确保GCC编译环境的正确配置。这通常在内网环境中进行,特别是对于那些进行了最小化安装的服务器,可能没有预装必要的开发工具和依赖包。...

    linux下搭建FastDFS+Nginx服务器

    - 安装依赖库:Nginx可能需要pcre和openssl库,使用`yum install pcre-devel openssl-devel`或`apt-get install libpcre3-dev libssl-dev`。 - 下载Nginx源码包,解压并编译安装:从官网下载最新版本,执行`./...

    tomcat+nginx集群

    1. 安装必备软件包:如`yum install -y pcre-devel zlib-devel openssl-devel`(对于CentOS/RHEL系统)。 2. 下载并编译安装Nginx,配置负载均衡策略。 3. 安装JDK和配置环境变量,为Tomcat提供运行环境。 4. 下载并...

    linux服务器nginx安装资源(nginx、openssl、pcre、zlib、gcc、gcc-c++)

    1. 更新系统包列表:`sudo apt-get update`(Ubuntu/Debian)或`yum update`(CentOS/RHEL)。 2. 安装依赖:`sudo apt-get install build-essential libssl-dev libpcre3-dev zlib1g-dev` 或 `yum install gcc gcc-...

    nginx-1.26.0最新版本已完成编译可解压直接使用

    **Nginx 1.26.0 最新版编译及使用详解** Nginx 是一款高性能、轻量级的 Web 服务器/反向代理服务器,因其高效的性能、丰富的功能和简单易用的配置,被广泛应用于各类互联网服务中。在本文中,我们将详细介绍 Nginx ...

    centos 7 nginx php

    首先,安装 EPEL (Extra Packages for Enterprise Linux) 仓库,这是一个为 RHEL 及其衍生版本(如 CentOS)提供的高质量附加软件包仓库。 ```bash wget ...

    openssl的所有依赖包

    2. **检查依赖关系**:使用`ldd`或`apt-get`(对于Debian/Ubuntu系)或`yum`(对于CentOS/RHEL系)来检查OpenSSL及其关联的依赖包。 3. **下载新版本的OpenSSL源代码**:从官方站点获取最新稳定版本的OpenSSL源代码...

    nginx-离线安装rpm依赖

    5. **安装RPM包**:现在,你可以使用`yum install`命令来安装Nginx及其依赖,指定你的本地仓库路径。例如: ```bash yum --disablerepo=* --enablerepo=nginx-repo install nginx ``` 6. **处理冲突和依赖问题*...

    Linux之nginx离线安装包

    你可以使用`apt-get`(Debian/Ubuntu)或`yum`(CentOS/RHEL)来安装它们: ``` sudo apt-get install build-essential libpcre3-dev libssl-dev zlib1g-dev 或 sudo yum install gcc pcre-devel openssl-devel ...

    nginx-linux-1.24.0.tar.gz

    # 对于CentOS/RHEL sudo yum install gcc pcre-devel openssl-devel zlib-devel ``` 接下来,进入Nginx源码目录并配置编译选项。Nginx提供了丰富的配置选项,可以根据需要定制。一个基本的配置命令可能如下: ```...

    nginx离线装包 包括安装文档

    这些可以通过`apt-get`(Ubuntu/Debian)或`yum`(CentOS/RHEL)等包管理器离线安装。 4. **配置编译**:运行`./configure`,这一步会检测系统环境并生成Makefile。你可以根据需求添加额外的编译选项,例如支持...

Global site tag (gtag.js) - Google Analytics