是什么
Nginx 粗浅介绍 和 常用配置
讲什么
- Nginx-介绍
- Nginx-正向代理
- Nginx-反向代理
- Nginx-跨域配置
- Nginx-Https启用
- Nginx-防盗链
- Nginx-gzip启用
Nginx-介绍
Nginx是一款轻量级的网页服务器、反向代理服务器。相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
它可以用来:
- 静态资源服务-通过本地文件系统提供服务
- 反向代理服务-缓存、负载均衡
- API服务
Nginx-正向代理
正向代理:需在客户端浏览器中配置代理服务器,然后通过代理服务器来进行访问外网,将访问到的局域网以外的网站内容返回给客户端,这种代理服务称之为:正向代理。
- 可做缓存,加速访问资源;
- 可以做内网限制
- 对客户端访问授权,上网进行认证;
- 代理可以记录用户访问记录
# vi /root/nginx-1.17.0/conf/nginx.conf
server {
resolver 192.168.1.1 # 指定 Nginx 服务器 IP 地址
listen 80;
location / {
proxy_pass http://$http_host$request_uri; # 设定代理服务器的协议和地址
}
}
Nginx-反向代理
反向代理:无需在客户端进行配置即可访问,我们只需要将请求发送给反向代理服务器,然后由反向代理服务器去选择要访问的目标服务器获取数据后,在返回给客户端。
- 保证内网安全,通常将反向代理作为公网访问地址,Web 服务器是内网;
- 负载均衡,通过反向代理服务器来优化网站的负载;
使用Nginx反向代理,根据所访问的路径跳转至不同端口的服务中。
Nginx 监听端口为:9001
访问 http://192.168.1.1:9001/abc直接跳转至192.168.1.1:8080 访问 http://192.168.1.1:9001/def直接跳转至192.168.1.1:8081
- 配置反向代理至Nginx服务器nginx.conf配置文件;
# vim /usr/local/nginx/conf/nginx.conf
server {
listen 9001;
server_name 192.168.1.10;
location ~ /special/ {
proxy_pass http://192.168.1.1:8080;
}
location ~ /home/ {
proxy_pass http://192.168.1.1:8081;
}
}
- 编辑防火墙配置文件,添加对外开放端口8080、8081、9001;
# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
- 重启防火墙
/etc/init.d/iptables restart
service iptables status
- 重启Nginx服务
# fuser -k 80/tcp
# cd /usr/local/nginx/
# cd sbin/
# ls
nginx
# ./nginx -s stop
# ./nginx
Nginx-跨域配置
http {
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
}
Nginx-Https启用
- 安装SSL模块 要在nginx中配置https,就必须安装ssl模块,也就是: http_ssl_modul
- 配置HTTPS 把ssl证书 *.crt 和 私钥 *.key 拷贝到 /usr/local/nginx/conf 目录中
- 新增 server 监听 443 端口
server {
listen 443;
# 你的域名
server_name dsying.cn;
# 开启ssl
ssl on;
# 配置ssl证书
ssl_certificate dsying.cn.crt;
# 配置ssl秘钥
ssl_certificate_key dsying.cn.key;
# ssl会话cache
ssl_session_cache shared:SSL:1m;
# ssl会话超时时间
ssl_session_timeout 5m;
location / {
proxy_pass http://公网地址:项目端口号;
}
}
Nginx-防盗链
http {
valid_referers baidu.com;
if ($invalid_referer) {
return 404
}
}
Nginx-gzip启用
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;