一、什么是 Nginx
● nginx 是一个高性能的HTTP和反向代理Web服务器,同时提供了IMAP/POP3/SMTP服务。
● nginx 的特点是占用内存少,并发能力强,并且nginx的并发能力在同类型的网页服务器中表现较好。
● nginx 是一个安装非常简单、配置文件非常简洁、Bug非常少的服务。
● nginx 启动非常容易,并且几乎可以做到7*24不间断运行,及时运行数个月也不需要重新启动。
● nginx 代码完全是由C语言从头写成,官方数据测试表明能够支持高达50000个并发连接数的响应
二、Linux 安装 Nginx
- 从官网下载nginx安装包
- 解压到本地
# 切换到包含nginx压缩包的文件夹
cd /home/Downloads
# 进行解压缩
tar -zxvf nginx-1.19.7.tar.gz
- 进入终端,切换到
nginx
解压后的文件夹中
cd /home/Downloads/nginx-1.19.7
- 安装前置依赖,进入终端
sudo apt-get install gcc
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g zlib1g-dev
- 进入终端,配置nginx
./configure
make # 如果没有make,则执行sudo apt install make
sudo make install
# 最终会在/usr/local文件夹下生成一个nginx文件夹,里面有配置文件
- 启动nginx
# 切换到/usr/local/nginx/sbin文件夹中
cd /usr/local/nginx/sbin
./nginx
- 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来使用