搜索

nginx安装及其配置详细教程

2025-1-1 21:05| 发布者: admin| 查看: 16| 评论: 0

 

转自:cnblogs.com/lywJ/p/1071

1 nginx 介绍

1 什么是nginx

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,

并且cpu、内存等资源消耗却非常低,运行非常稳定。

2 应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,

需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,

不会因为某台服务器负载高宕机而某台服务器闲置的情况。

2 nginx安装

1 下载

官方网址:nginx.org/en/download.h

官网提供三种版本:

Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版



我们这里下载的是Stable version下面的



使用的版本是1.14.0.tar.gz.

2 安装要求的环境

下面的环境需要视自己的系统情况而定,没有的环境安装以下就好。

1.需要安装gcc环境

# yum install gcc-c++

2.第三方的开发包

1 PERE

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。

nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库

# yum install -y pcre pcre-devel

2 zlib

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库

# yum install -y zlib zlib-devel

3 openssl

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,

并提供丰富的应用程序供测试或其它目的使用。

nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库

# yum install -y openssl openssl-devel

3 nginx安装过程

1 把nginx源码包上传到linux系统上



2 解压到/usr/local下面

# tar -xvf nginx-1.14.0.tar.gz -C /usr/local

3 使用cofigure命令创建一个makeFile文件

执行下面的命令的时候,一定要进入到nginx-1.14.0目录里面去。



./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module


如果没有makeFile文件,编译的时候会报错



\ 表示命令还没有输入完,换行的意思。

--prefix=/usr/local/nginx  表示软件安装到/usr/local/nginx下面。
这个make install 的时候就不用在指定安装路径。
执行完成后查看目录里面已经多了一个Makefile文件



注意:启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,

需要在/var下创建temp及nginx目

4 创建目录/var/temp/nginx/

# mkdir /var/temp/nginx -p

-p 表示级联创建的意思

5 进入nginx-1.14.0里面执行make命令进行编译


6 进入nginx-1.14.0里面执行make install 命令进行安装

这里不需要再次执行安装路径,创建makefile文件的时候已经指定了。



7 进入安装位置/usr/local/nginx查看目录结构



其中html是里面首页html文件。conf里面是配置文件。sbin里面只执行文件。

3 启动nginx

进入sbin目录,执行命令./nginx

[root@admin sbin]# ./nginx

4 查看nginx是否启动

[root@admin sbin]# ps -aux | grep nginx



ps命令用于报告当前系统的进程状态

-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。

a:显示现行终端机下的所有程序,包括其他用户的程序。

u:以用户为主的格式来显示程序状况。

x:显示所有程序,不以终端机来区分。

5 关闭nginx

[root@admin sbin]# ./nginx -s stop

或者

[root@admin sbin]# ./nginx -s quit

6 重启nginx

先关闭,然后启动

7 刷新配置文件

[root@admin sbin]# ./nginx -s reload

8 关闭防火墙,开启远程访问

首先需要关闭防火墙:默认端口是80

方法一:永久开放80端口

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save

方法二:临时关闭系统防火墙

# service iptables stop

方法三:永久关闭修改配置开机不启动防火墙

# chkconfig iptables off

特殊:针对阿里云

需要添加安全组规则



9 访问nginx



10 配置虚拟主机

就是在一台服务器启动多个网站。

如何区分不同的网站:主要有以下两种方式

方式一:端口不同

方式二:域名不同

11 通过端口区分不同的主机

nginx配置文件的位置:/usr/local/nginx/conf/nginx.conf

原始配置文件的内容如下:



我们可以通过配置多个server,从而配置多个虚拟机



下面测试以下:复制原来的html目录,改名为html-81



修改以下里面的index.html文件,方便区分

[root@admin nginx]# vim html-81/index.html



修改完成之后刷新以下配置文件

[root@admin sbin]# ./nginx -s reload

然后分别访问192.168.204.131:80 和192.168.204.131:81





12 多个域名区分虚拟主机

1 什么是域名

域名就是网站:baidu.com就是域名

DNS域名解析服务器,把域名解析为ip地址。保存的就是域名和ip地址的映射关系。

一级域名:baidu.com

二级域名:baidu.com

三级域名:image.baidu.com

一个域名对应与一个ip地址,一个ip地址可以被多个域名绑定。

只需要买一个一级域名,后面的二级,三级域名你自己可以随便定义。

本地测试我们可以通过修改hosts配置文件来完成:

hosts文件的位置:C:\Windows\System32\drivers\etc

可以自己手动配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走DNS域名解析服务器

因为拿到一个域名,首先是到hosts文件里面查找,没有才有去DNS域名解析器查找。

2 nginx配置



3 测试

1 修改本地hosts配置文件



2 复制html目录,分别改名为html-taobao和html-baidu



3 分别修改html-baidu和html-taobao里面的index.html文件,方便区分





4 刷新配置文件

[root@admin sbin]# ./nginx -s reload

5 然后使用浏览器分别访问:taobao.com 和 baidu.com

13 正向代理



14 反向代理



反向代理服务器决定那台服务器提供服务


12下一页

鲜花

握手

雷人

路过

鸡蛋
返回顶部