一、Nginx简介
- Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,Nginx可以作为一个Web服务器进行网站的发布,也可以作为反向代理服务器进行负载均衡的实现,常见的Web服务器:Tomcat、Apache、Nginx、Weblogic等。
- 特点:暂用内存少,并发能力强
二、搭建Nginx环境
Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本文记录使用 CentOS 7 作为安装环境,采用源码安装的方式。在正式安装Ngnix之前,需要安装一些相关库(centos 提供yum在线安装,方便!)
2.1、gcc安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
代码语言:javascript复制yum install gcc-c
2.2、PCRE pcre-devel安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
代码语言:javascript复制yum install -y pcre pcre-devel
2.3、zlib安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
代码语言:javascript复制yum install -y zlib zlib-devel
2.4、OpenSSL安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
代码语言:javascript复制yum install -y openssl openssl-devel
2.5、所有关联的库都下载完成后,到官网下载ngnix安装包。
官网地址:https://nginx.org/en/download.html,点击前往。如下界面,点击红色框部分,可以直接下载。版本根据自己需要选择:
也可以直接使用 wget 命令下载(选中要下载的包,右击点击复制链接地址):
代码语言:javascript复制wget -c http://nginx.org/download/nginx-1.14.2.tar.gz
2.6、安装、配置
解压:
建议将安装包下载到:user/local/src/
, 解压:
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
配置:
其实在 nginx-1.15.0 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
使用默认配置:
代码语言:javascript复制./configure
自定义配置(不推荐):
代码语言:javascript复制./configure
--prefix=/usr/local/nginx
--conf-path=/usr/local/nginx/conf/nginx.conf
--pid-path=/usr/local/nginx/conf/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
备注:将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
编译、安装
代码语言:javascript复制make
make install
查找安装路径:whereis nginx
2.7、Ngnix相关操作命令
进入到ngnix的安装目录,cd /usr/local/nginx/sbin/
,可以通过命令:./ngnix -h
,查看帮助。
[root@izuf6j02r724hodeuer2y9z ~]# cd /usr/local/nginx/sbin/
[root@izuf6j02r724hodeuer2y9z sbin]# ./nginx -h
nginx version: nginx/1.14.0
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx/)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file
[root@izuf6j02r724hodeuer2y9z sbin]#
代码语言:javascript复制./nginx #启动
./nginx -s stop #停止(此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。)
./nginx -s quit #停止 (此方式停止步骤是待nginx进程处理任务完毕进行停止。)
./nginx -s reload # 重新加载配置文件,一般修改配置文件后,执行这条命令即可完成重启
# 需要重启ngnix,推荐以下方式:
./nginx -s quit
./nginx
#重新加载配置文件:当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:
./nginx -s reload
2.7、启动ngnix
nginx 默认监听80端口,如果本地 80 端口没有被占用,则不需要修改端口。启动成功后,访问出现如下界面,则说明ngnix安装成功。
2.8、设置开机自启动
代码语言:javascript复制#即在rc.local增加启动代码就可以了。
vi /etc/rc.local
/usr/local/nginx/sbin/nginx #增加一行
#设置文件执行权限:
chmod 755 rc.local
到此,则完成ngnix的安装
三、Ngnix 相关使用
3.1、作为一个图片服务器
- 上传:使用ftp或sftp上传图片到服务器指定的ftp目录下
- 下载:通过访问Nginx服务器来访问ftp目录下的图片文件,即使用HTTP请求来访问资源文件,而不是通过FTP请求
步骤:
创建存放图片的文件夹,并上传图片到该目录中
代码语言:javascript复制mkdir /home/static/images
配置Nginx
代码语言:javascript复制vim /usr/local/nginx/conf/ngnix.conf #目录根据自己实际情况
location /images {
root /home/static;
autoindex on; #打开目录浏览功能,非必须
}
配置好后,重启 ngnix, 访问 url:http://ip/images
实际物理路径:/home/static/images
如果配置了打开目录浏览功能,则会看到这样的页面
3.2、反向代理
客户端发送请求到服务器(客户端认为是原始服务器,实际上是一台反向服务器),反向代理服务器接收请求并将请求转发给内部网络中的多台集群服务器,并将响应的数据返回给客户端反向代理一般用于服务器集群、分布式等,实现负载均衡。
作用:
- 负载均衡,提高处理和响应速度
- 保证内网的安全,隐藏服务器信息,防止Web攻击
正常请求: 客户端发送请求到服务器,服务器接收请求并响应数据
正向代理: 位于客户端和原始服务器之间的服务器,为了从原始服务器获取数据,客户端向代理服务器发送请求并指定请求目标(原始服务器),然后代理服务器将请求转换给原始服务器,并将响应的数据返回给客户端。正向代理是客户端使用的,对客户端进行代理,客户端知道并主动使用代理。
作用:
- 访问原来无法访问的资源(google、fackbook等),翻墙
- 可以做缓存,加速资源的访问
- 对客户端上网进行认证授权
- 上网行为管理,记录用户访问记录,对外隐藏用户信息
配置反向代理,配合Tomcat使用,可以实现端口转发等:
代码语言:javascript复制cd /usr/local/nginx/conf
vi nginx.conf
#后台服务器列表
upstream tomcat_server{
server 192.168.1.66:8080;
}
server {
listen 80;
server_name www.tomcat.com;
location / {
proxy_pass http://tomcat_server; #指定代理的后台服务器
}
}
3.3、负载均衡
将接收到的请求按照一定的规则分发到不同的服务器进行处理,从而提高系统响应和处理速度,称为负载均衡。
配置:
代码语言:javascript复制vim /usr/local/ngnix/conf/ngnix.conf
#后台服务器列表
upstream taobao_server{
server 192.168.1.66:8081 weight=3; #weight表示权重,权重越高被分配到的几率越大
server 192.168.1.66:8082 weight=7;
}
server {
listen 80;
server_name www.taobao.com; #这里填写服务器的域名
location / {
proxy_pass http://taobao_server; #指定代理的后台服务器列表
}
}
3.4、动静分离
tomcat在处理静态资源时效率不高,默认情况下所有资源都由tomcat处理,会导致 Web 应用响应慢,占用系统资源。
解决:将静态资源交由Nginx处理,动态资源仍由tomcat处理,实现动静分离实际上就是把Nginx作为静态资源服务器。
配置:
代码语言:javascript复制vim /usr/local/ngnix/conf/ngnix.conf
#处理静态资源
location ~ .*.(js|css|ico|png|jpg|eot|svg|ttf|woff) {
root /home/static; #静态资源根路径
}
创建存放静态资源的文件夹,并将资源资源放到该目录中:
代码语言:javascript复制cd /home
mkdir static
chmod 777 *
cd /home/soft01/software/taobao1/webapp/ROOT #服务器 tomcat 的路径
cp xxx.css xxx.png /home/static/
高并发的处理:
- 负载均衡:集群
- 动静分离:使用Nginx、CDN
- 缓存:以空间换时间,提高系统效率
- 限流:流量控制
- 降级:服务降载
以上所有内容记录完结!
代码语言:javascript复制参考链接:
https://blog.csdn.net/fukai8350/article/details/80634566
本文作者: AI码真香
本文标题: CentOS 下 配置Nginx 和相关使用配置
本文网址: https://www.xmlvhy.com/article/76.html
版权说明: 自由转载-非商用-非衍生-保持署名 署名-非商业性使用4.0 国际 (CC BY-NC 4.0)