Nginx安装配置全教过程

什么是Nginx
Nginx 是一个高性能的 Http 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,由俄罗斯的程序设计师Igor Sysoev所开发,官方测试单个 Nginx 能够支支撑5万并发链接。并且cpu、内存等资源消耗却非常低,运行非常稳定。


如何在Linux下安装Nginx
下载 Nginx

Nginx官方地址:http://nginx.org/en/download.html
Nginx官网提供三种版本:

Mainline version :Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version :最新稳定版,生产环境上建议使用的版本
Legacy versions :遗留的老版本的稳定版
目前推荐使用稳定版本
安装要求的环境

GCC 环境

yum install gcc-c–
第三方的开发包

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

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

yum install -y zlib zlib-devel
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装过程

把nginx源码包上传到linux系统上
解压到/usr/local下面

# 解压命令
tar -xvf nginx-1.18.0.tar.gz -C /usr/local
进入nginx目录

cd nginx-1.18.0
配置Nginx编译时指定程序存放路径

./configure –prefix=/usr/local/nginx
编译安装

make

# make执行完成之后

make install
测试是否安装成功

# 切换到nginx目录
cd /usr/loca/nginx/
# 检测nginx配置文件是否正确
./sbin/nginx -t
正常输出
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动Nginx

# 切换到usr/local/nginx/sbin目录
cd /usr/local/nginx/sbin
# 启动nginx
./nginx
配置Nginx开机自启动(这里用的是Centos7.x)

cd /lib/systemd/system/
# 创建配置文件
vim nginx.service

# 输入文件内容
[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 退出并保存文件

# 加入开启启动
systemctl enable nginx

# 如果不想要启动了就用下面这条命令关掉
systemctl disable nginx
Nginx配置说明
配置模块

nginx的配置(conf/nginx.conf)主要有:全局参数、events、http这三大块组成。
系统配置:server,可以配置多个server
转发规则:location路径、root目录、index欢迎页面
反向代理规则:location拦截路径、proxy_pass转向地址、index
配置多端口访问不同的目录

在配置中增加

server {
listen 81;
# 可根据域名不同来区分,但是端口需要改成80,这样访问域名就不会带端口后缀了
server_name www.xunliji.cn;

root /var/www/web1/;
location / {
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/web1/;
}
}
以上配置根据自己需要更改端口号和目录路径,增加配置后记得重启

nginx 请求转发配置 (反向代理)
当用户访问 http://localhost:80,nginx 将这个请求什么也不做,只负责转发到 tomcat 的访问地址 http://localhost:8080。

server {
listen 80;
server_name localhost;

location / { #拦截所有的资源
proxy_pass http://127.0.0.1:8080; #转向tomcat的地址
}
}
nginx负载均衡

http{
….
upstream server_pool{
server 192.168.5.21;
server 192.168.5.22;
}
server {
listen 80;
server_name www.xunliji.cn;
location / {
proxy_pass http://server_pool
}
}

….
}
轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
weight代表权重默认为1,权重越高被分配的客户端越多指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:

upstream server_pool{

server 192.168.5.21 weight=10;

server 192.168.5.22 weight=10;

}
ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如:

upstream server_pool{

ip_hash;

server 192.168.5.21:80;

server 192.168.5.22:80;

}
fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream server_pool{

server 192.168.5.21:80;

server 192.168.5.22:80;

fair;

}
Nginx 常用命令
– 启动nginx `./sbin/nginx`
– 停止nginx `./sbin/nginx -s stop` 或 `./sbin/nginx -s quit`
– 重载配置 `./sbin/nginx -s reload`
– 重载指定配置文件 `./sbin/nginx -c /usr/local/nginx/conf/nginx.conf`
– 查看nginx版本 `./sbin/nginx -v`
– 检查配置文件是否正确 `./sbin/nginx -t`
– 显示帮助信息 `./sbin/nginx -h`

本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。邮箱:1103606138#qq.com

站点地图