一,安装nginx

1.安装nginx

  1. #!/bin/bash
  2. #安装nginx
  3. yum -y install gcc make pcre-devel openssl-devel &> /dev/null
  4. wget http://nginx.org/download/nginx-1.18.0.tar.gz
  5. tar -xf nginx-1.18.0.tar.gz
  6. cd nginx-1.18.0
  7. ./configure --prefix=/usr/local/nginx --user=nginx --with-http_ssl_module
  8. make
  9. make install
  10. useradd nginx -s /sbin/nologin //创建账户
  11. ls /usr/local/nginx

ls /usr/local/nginx //安装好之后查看目录
conf 存放配置文件 sbin 存放主程序
html 存放网站页面 logs 存放日志

/usr/local/nginx/sbin/nginx -V //查看nginx版本以及安装了的参数和模块
2.开启服务
/usr/local/nginx/sbin/nginx //开启服务
3,添加支持中文设置
vim /usr/local/nginx/conf/nginx.conf
charset utf-8; //第39行,添加utf-8支持中文,去掉#
/usr/local/nginx/sbin/nginx -s reload //重新加载配置文件,服务必须是开启状态

二,为nginx增加网站认证功能

修改nginx配置文件,在40、41行添加两句 vim /usr/local/nginxconf/nginx.conf
auth_basic “password”; //网页弹出的提示,此信息可能会根据不同浏览器显示效果不一,有的浏览器甚至不显示,但不影响认证功能
auth_basic_user_file “/usr/local/nginx/pass”; //存放网站账户的文件
—————————————————————————————————————————————
/usr/local/nginx/sbin/nginx //重加载配置,检验之前配置,没有任何信息即可
yum -y install httpd-tools //之后安装软件包,用于创建加密pass文件
htpasswd -c /usr/local/nginx/pass tom //创建pass文件,里面创建tom账户,之后会要求输入两次密码
然后用火狐浏览器访问,可以看到输入用户名密码的对话框、输入用户名tom以及密码即可。如果反复测试,需要清空浏览器或者无痕模式
htpasswd /usr/local/nginx/pass jerry //追加一个账户,去掉-c

三,创建虚拟主机

1.nginx主配置文件添加如下,并重新加载配置文件(可以参考配置文件内修改)
server{
listen 80;
server_name www.b.com;
root html_b;
index index.html;
}
/usr/local/nginx/sbin/nginx -s reload //重新加载配置文件,服务必须是开启状态
2,创建b网站目录
mkdir html_b

四,搭建安全网站https

1,修改配置,实现安全加密网站
vim conf/nginx.conf //修改大概103-120行去掉#号 :103,120s/#//
server {
listen 443 ssl;
server_name www.c.com;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html_c;
index index.html index.htm;
}
}
2,创建私钥及证书
openssl genrsa > /usr/local/ngnix/conf/cert.key //创建私钥
openssl req -x509 -key /usr/local/ngnix/conf/cert.key > /usr/local/ngnix/conf/cert.pem //创建证书(包含公钥),生成过程会询问问题,全部随意回答即可
3,重新加载配置
/usr/local/nginx/sbin/nginx -s reload //重新加载配置文件,服务必须是开启状态
4,测试
mkdir /usr/local/nginx/html_c
echo nginx-cc > /usr/local/nginx/html_c/index.html
curl -k https://www.c.com //-k是忽略风险
5,浏览器访问,可百度搜索ssl证书按年付费购买去掉提示风险

五、查看网站后台数据

—with-http_stub_status_module //该功能利用的模块
在errot_page行上面添加下列内容,重新加载配置
location /status {
stub_status on;
allow 192.168.2.5;
deny all;
}
访问 curl 192.168.2.5/status

1.缓存文件到客户端

打开配置文件,在默认的location下面添加一个location
location ~* .(jpg|html|txt|mp3)$ {
expires 30d;
}
测试:浏览器about:cache

2.支持超长地址栏

默认情况下nginx无法支持超长地址栏,会报414错误
打开配置文件,在默认的虚拟主机上方添加两行
client_header_buffer_size 200k;
large_client_header_buffers 4 200k;

3.优化nginx并发

1.打开nginx配置文件修改第3行,第13行
worker_processes 2; //开启的nginx进程数量,通常随cpu核心数
worker_connections 50000; //每个nginx进程支持的并发访问量
2.临时设置文件可以被同时打开的次数
ulimit -n //查询
ulimit -n 100000 //临时设置为10万
3.永久设置,limits.conf修改第53、54行
vim /etc/security/limits.conf
# soft core 0
#
hard rss 10000
上面两行改成
soft nofile 100000
hard nofile 100000
重启主机生效,已经临时设置后就不用重启
4.其他机器测试
yum -y install httpd-tools //安装压力测试工具
ab -c 2000 -n 2000 http://192.168.2.5/ //压力测试工具模拟2000人,每人1次,一共2000次
ulimit -n //查询
ulimit -n 100000 //临时设置