Nginx 配置手册

一、什么是 Nginx

● nginx 是一个高性能的HTTP和反向代理Web服务器,同时提供了IMAP/POP3/SMTP服务。
● nginx 的特点是占用内存少,并发能力强,并且nginx的并发能力在同类型的网页服务器中表现较好。
● nginx 是一个安装非常简单、配置文件非常简洁、Bug非常少的服务。
● nginx 启动非常容易,并且几乎可以做到7*24不间断运行,及时运行数个月也不需要重新启动。
● nginx 代码完全是由C语言从头写成,官方数据测试表明能够支持高达50000个并发连接数的响应

二、Linux 安装 Nginx

  1. 从官网下载nginx安装包
  2. 解压到本地
# 切换到包含nginx压缩包的文件夹
cd /home/Downloads
# 进行解压缩
tar -zxvf nginx-1.19.7.tar.gz
  1. 进入终端,切换到nginx解压后的文件夹中
cd /home/Downloads/nginx-1.19.7
  1. 安装前置依赖,进入终端
sudo apt-get install gcc
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g zlib1g-dev
  1. 进入终端,配置nginx
./configure
make		# 如果没有make,则执行sudo apt install make
sudo make install
# 最终会在/usr/local文件夹下生成一个nginx文件夹,里面有配置文件
  1. 启动nginx
# 切换到/usr/local/nginx/sbin文件夹中
cd /usr/local/nginx/sbin
./nginx
  1. nginx常用命令
# 启动nginx
./nginx
# 关闭nginx
./nginx -s stop   或者   ./nginx -s quit
# 重启nginx
./nginx -s reload
# 查看nginx进程
ps aux|grep nginx
# nginx开机自启动
vim /etc/rc.local
# 文件底部加上 /usr/local/nginx/sbin/nginx

三、Nginx 配置文件

nginx服务器的配置文件/usr/local/nginx/conf/nginx.conf
当运行项目时,我们仅需修改nginx配置文件即可

# 负载均衡配置
upstream 域名/任意值 {
    server 127.0.0.1:8080(服务器IP地址:端口号) weight=1(权重);
    server 127.0.0.1:8081 weight=3(与上面那台服务器的权重比为3:1);
}
server {
    listen 80;    # 监听的端口
    server_name  localhost;    # 服务器名称

    # charset koi8-r;		# 设置字符集

    # access_log  logs/host.access.log  main;
  
    location / {
      root   html;		# 静态文件总目录
      index  index.html index.htm;
  
      # 代理
      proxy_pass http://(域名/任意值)        (与上方负载均衡名称相同)
    }
}

四、全站 HTTP 跳转 HTTPS 协议

http://www.lummer.com 为例, 要求所有访问该页面的请求全部跳转到https://www.lummer.com/ 且请求的URL和参数$query_string要保留下来
● 使用if进行协议判断 ---- 最差

server {
    listen    80 default_server;
    listen    443 ssl default_server;
    server_name    www.a.com;
    ssl_certificate    "/data/nginx/ssl/nginx.crt";
    ssl_certificate_key    "/data/nginx/ssl/nginx.key";
    root    /data/nginx/a;
    charset    utf-8;
    if($schema = http){
        rewrite ^/(.*)$    https://www.a.com/$1    permanent;
    }
}

# 这种配置方法看起来简洁很多, 但是性能是最差的, 首先每次链接进来都需要Nginx进行协议判断, 其次判断为http协议时进行地址匹配、重写、返回、再次判断、最后还有正则表达式的处理······所以, 生产上我们极不建议这种写法, 另外, 能少用if就尽量不用, 如果一定要用, 也最好在location字段, 并且结合return或者rewrite···last来使用

你可能感兴趣的:(nginx,前端,http,linux)