nginx入门

基本概念

   Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx专为性能优化而开发,性能是器最重要的考量,实现上非常注重效率,能经受高负载的考验,据报告能支持高达50,000个并发连接数。

功能实现

正向代理

 

 

 

反向代理

 

 

 

负载均衡

 

 

 

动静资源分离

 

 

 

安装配置

windows

1、下载:http://nginx.org/en/download.html 下载稳定版本。

2、启动:

(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过

(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可

3、检查:接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!

linux

1、安装依赖

a、安装gcc,安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

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

yum install -y pcre pcre-devel

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

yum install -y zlib zlib-devel

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

yum install -y openssl openssl-devel

2、下载安装包:https://nginx.org/en/download.html

3、解压

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

4、配置

./configure
make
make install

 常用命令

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程

 PS:若连接不上,检查阿里云安全组是否开放端口,或者服务器防火墙是否开放端口

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

 使用示例

   本地对同一个django启动两个服务项目,一个端口设成8000,权重设置成5,一个端口设成8001,权重设置成1,nginx配置如下:

worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    
    upstream wzj{
        server 127.0.0.1:8000 weight=5;
        server 127.0.0.1:8001 weight=1;
    }

    server {
        listen       80;
        server_name  127.0.0.1;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://wzj;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

发出六次请求,效果如下:

posted @ 2021-01-30 16:43  WuSir_ZJ  阅读(77)  评论(0编辑  收藏  举报