Nginx配置片段

Lear 2024-07-24 22:00:00
Categories: Tags:

Nginx配置片段
#ftp目录提供文件浏览
location /ftp {
alias /www/ftp/;
autoindex on; # 开启目录浏览功能
autoindex_localtime on; # 显示本地时间
autoindex_format html; # 输入格式,可选项为html、xml、json、jsonp
autoindex_exact_size off; # 显示精确字节大小还是显示友好可读的大小
charset utf-8,gbk; # 保证以中文命名的文件显示不会乱码
}

#❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈

#私密文件目录,需要用户包密码登录,用户名密码保留在/www/server/nginx/nginx.user文件
    location /doc {
    alias /www/Documents/;
    #浏览器弹框的提示信息
    auth_basic "Document folder";
    #设置认证时的用户名,密码文件
    auth_basic_user_file /www/server/nginx/nginx.user ;
    autoindex on;  # 开启目录浏览功能
    autoindex_localtime on;  # 显示本地时间
    autoindex_format html;  # 输入格式,可选项为html、xml、json、jsonp
    autoindex_exact_size off;  # 显示精确字节大小还是显示友好可读的大小
    charset utf-8,gbk;  # 保证以中文命名的文件显示不会乱码
}

为nginx生成生成验证用户名密码需要使用htpasswd命令,此命令包含在apache2-utils包中
apt install apache2-utils
生成新用户配置文件并添加用户
htpasswd -bc /www/server/nginx/nginx.user user P@ssw0rd
向已有用户配置文件中添加用户
htpasswd -b /www/server/nginx/nginx.user user P@ssw0rd

#❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈

##root与alias区别说明

location /ftp {
    alias /www/ftp/;
}

location /ftp {
    root /www/ftp/;
}

以上两个配置中,alias表示域名与路径同时替换,只能在location使用;root表示只替换域名不替换路径,可以在server和location里使用。
alias访问 http://www.web/ftp/ 表示访问路径/www/ftp/中的文件
root访问 http://www.web/ftp/ 表示访问路径/www/ftp/ftp/中的文件

#❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈
stream {
server {
listen 1688;
proxy_pass vlmcsd;
}
upstream vlmcsd {
server 172.17.0.2:1688 ;
}
}

TCP反向代理配置与负载均衡配置类似负载均衡配置,在upstream里配置多个服务器地址与端口,
Nginx 的负载均衡 ngx_http_upsteam_module 模块,默认编译安装。upstream 模块只能定义在 http 模块下。
http {
….
upstream <名称> {
[负载均衡算法,不配置表示使用轮询]
server <地址>:<端口> <非必传参数>;
}

}
负载均衡有 轮询、权重轮询(轮询时使用current_weight 减去 total_weight)、IP_HASH、动态参数HASH,最小连接数、随机算法 6 种负载均衡算法。轮询算法为 Nginx 默认的负载均衡算法。
#❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈❈
#配置SSL支持https
server {
listen 443 ssl; // 这里是新的写法
server_name your-domain.com; // 你的域名
# ssl on; // 这种已经不使用了,这么写会报警告,可以直接去掉采用第一行的写法
root /xxx/xxx/html; // 前台文件存放文件夹,一般使用 Nginx 初始化的文件夹,当然也可以自己修改
index index.html;// 上面配置的文件夹里面的index.html
ssl_certificate /xxx/cert/214292799730473.pem;// 改成你的证书的名字
ssl_certificate_key /xxx/cert/214292799730473.key;// 你的证书的名字
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}

#配置http自动跳转https
server {
listen 80;
server_name your-domain.com;// 你的域名
rewrite ^(.*)$ https://$host:443$1 permanent;// 把http的域名请求转成https且转发到443端口
}