centos7安装nginx教程

2020-04-10 宋洋葱 宋洋葱

安装 nginx

参考官方文档在centos 7 安装 nginx

yum install nginx -y
nginx -v
nginx
curl -I 127.0.0.1

nginx 做静态网页服务器

编辑配置文件 vi /etc/nginx/nginx.conf

server {
   listen       80;
   listen       443 ssl;
   server_name  *.sxy21.cn;

   ssl_certificate      /etc/nginx/ssl/www.sxy21.cn.pem;
   ssl_certificate_key  /etc/nginx/ssl/www.sxy21.cn.key;

   ssl_session_cache    shared:SSL:1m;
   ssl_session_timeout  5m;

   ssl_ciphers  HIGH:!aNULL:!MD5;
   ssl_prefer_server_ciphers  on;
   root         /usr/share/nginx/html;
   location / {
       root   html;
       index  index.html index.htm;
   }
}

nginx 做反向代理服务器

server {
   listen       80;
   location / {
       proxy_pass 192.168.0.2:8080
   }
   
   location /data/ {
       proxy_pass 192.168.0.3:8080
   }
   
   location /test/ {
       proxy_pass 192.168.0.4:8080/
   }
}
# proxy_pass 中,带'/'表示绝对路径,不带'/'表示相对路径。
# 上面的例子为:
# /data/a.png  --> /data/a.png
# /test/b.png  --> /b.png

nginx 的其他用法

端口转发

nginx -V |grep with-stream  # 需要 stream 模块
# nginx version: nginx/1.20.1
mkdir -p /etc/nginx/tcp.d/
echo "include /etc/nginx/tcp.d/*.conf;" >> /etc/nginx/nginx.conf
vi /etc/nginx/tcp.d/my.conf
  1. 使用 nginx 做端口转发
stream{
    server{
        listen 3222;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass 192.168.0.2:22;
    }
}
  1. 使用 nginx 做批量端口转发,转发端口段,端口范围
stream{
   server {
     listen 30100-30200;
     proxy_pass 10.0.8.9:$proxy_port;
   }
}

注:不能把 $proxy_port 换成 $proxy_port ,否则会出现 nginx: [emerg] unknown “proxy_port” variable

nginx 升级到最新版

参考文档

# 安装依赖
apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring
# 导入 gpg
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
# 配置软件源
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
# 安装
apt update && apt install -y nginx