Linux安装Nginx[常用配置清单]


  Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集、稳定性、示例配置文件和低系统资源的消耗受到了开发者的欢迎

安装Nginx

  1. 准备工作
    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  2. 下载
     官网下载Nginx tar包
  3. 编译安装
tar -zxvf nginx-x.x.x.tar.gz
cd nginx
./configure --prefix=/usr/local/nginx

支持ssl编译
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

make
make install
  1. 开机自启
    vim /lib/systemd/system/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

  1. 启动|关闭|查看状态
    systemctl start|stop|status nginx

配置负载均衡

	#这里定义Web服务器池,包含了251,252两个Web节点
    upstream cmlx_server_pools {         

	server 10.0.1.11:10011 weight=1;

	server 10.0.1.12:10012 weight=1;

	}
	#这里定义代理的负载均衡域名虚拟主机
    server {            
        listen       10018;
        server_name  www.cmlx.com;
        location / {
        #访问www.cmlx.com,请求发送给cmlx_server_pools里面的节点
		proxy_pass http://cmlx_server_pools;     
        }
    }

侦听端口

server {
    # Standard HTTP Protocol
    listen 80;
    # Standard HTTPS Protocol
    listen 443 ssl;
    # For http2
    listen 443 ssl http2;
    # Listen on 80 using IPv6
    listen [::]:80;
    # Listen only on using IPv6
    listen [::]:80 ipv6only=on;
}

访问日志

server {
    # Relative or full path to log file
    access_log /path/to/file.log;
    # Turn 'on' or 'off'
    access_log on;
}

域名

server {
    # Listen to yourdomain.com
    server_name yourdomain.com;
    # Listen to multiple domains  server_name yourdomain.com www.yourdomain.com;
    # Listen to all domains
    server_name *.yourdomain.com;
    # Listen to all top-level domains
    server_name yourdomain.*;
    # Listen to unspecified Hostnames (Listens to IP address itself)
    server_name "";
}

静态资源

server {
    listen 80;
    server_name yourdomain.com;
    location / {
        root /path/to/website;
    }
}

重定向

server {
    listen 80;
    server_name www.yourdomain.com;
    return 301 http://yourdomain.com$request_uri;
}

server {
    listen 80;
    server_name www.yourdomain.com;
    location /redirect-url {
        return 301 http://otherdomain.com;
    }
}

反向代理

server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://0.0.0.0:3000;
        # where 0.0.0.0:3000 is your application server (Ex: node.js) bound on 0.0.0.0 listening on port 3000
    }
}

SSL协议

server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl on;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/privatekey.pem;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /path/to/fullchain.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_timeout 1h;
    ssl_session_cache shared:SSL:50m;
    add_header Strict-Transport-Security max-age=15768000;
}

# Permanent Redirect for HTTP to HTTPS
server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

密码访问

在服务上搭建了一些服务,如果我们不想让所有人访问,就可以设置访问认证,让用户输入正确的用户名和密码才能访问。
Nginx配置用户名密码访问

  1. 安装htpassword工具
    1> 通过yum安装
yum -y install httpd-tools

    2>设置用户名和密码,并把指定用户名、密码保存到指定文件

htpasswd -c [passwdfile] [username]

配置用户名密码
  注意:/usr/local/nginx/passwd 是生成密码后的文件保存路径(passwdfile),codeauth是用户名(username)
  查看最后生成的密码文件的内容:(codeauth分号后的内容是加密过的密码)
加密后的密码
2. 修改nginx配置文件
找到Nginx配置文件,要对响应的服务开启验证,所以在配置文件中的server修改如下:

server {
   listen 80;
   server_name  localhost;
   .......
 
   #新增下面两行
   auth_basic "Please input password"; #这里是验证时的提示信息 
   auth_basic_user_file /usr/local/nginx/passwd;
 
   location /{
   .......
}

重启Nginx
3. htpassword 其他参数

 htpasswd [-cmdpsD] [passwdfile] [username]
 htpasswd -b[cmdpsD] [passwdfile] [username] [password]
 htpasswd -n[mdps] username
 htpasswd -nb[mdps] username password

 htpasswd命令选项参数说明
 -c 创建一个加密文件
 -n 不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上
 -m 默认htpassswd命令采用MD5算法对密码进行加密
 -d htpassswd命令采用CRYPT算法对密码进行加密
 -p htpassswd命令不对密码进行进行加密,即明文密码
 -s htpassswd命令采用SHA算法对密码进行加密
 -b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
 -D 删除指定的用户
  • 创建一个新用户
htpasswd -b [passwdfile] [username] [passwd]

在这里插入图片描述
此时查看passwd 文件中的用户和密码
在这里插入图片描述

  • 删除用户
htpasswd -D [passwdfile] [username]

在这里插入图片描述
此时查看passwdfile 中的用户和密码
在这里插入图片描述

  • 创建文件,添加用户
htpasswd -bc [passedfile] [username]

在这里插入图片描述
此时的文件中的用户
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值