Nginx使用配置说明

Nginx

Nginx是一个高性能的HTTP和反向代理WEB服务器,同时也提供了IMAP/POP3/SMTP服务。

nginx详解:https://blog.csdn.net/weixin_42009068/article/details/106078132?spm=1001.2014.3001.5502

下面介绍一些常用的配置与使用:

监听端口

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;
}

监听端口,标准化的http协议监听的80端口与https协议的443端口

访问日志

server {
# 日志文件的相对路径或者绝对路径
access_log /path/to/file.log;
# 开启 'on' 或者 关闭 'off' 日志  
access_log on;
}

域名

server {
# 监听转发到 ===> yourdomain.com 域名
server_name yourdomain.com;
# 监听 server_name ===> yourdomain.com www.yourdomain.com;
# 监听到转发到所有的二级域名 *_前缀
server_name *.yourdomain.com;
# 监听到转发到所有的二级域名 *_后缀
server_name yourdomain.*;
# 不指定监听的主机 默认指向本地主机(ip本身)
server_name "";
}

静态资源

server {
listen 80;
server_name yourdomain.com;
# 表示访问yourdomain.com:80/ 的时候会访问/path/to/website的静态资源
location / {
root /path/to/website;
  }
}

重定向

server {
listen 80;
server_name www.yourdomain.com;
# 返回 http 301 则重定向到http://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;
# 0.0.0.0是应用服务器地址,3000是监听访问端口,访问yourdomain.com代理访问http://0.0.0.0:3000
}
}

负载均衡

# 配置要映射的服务器
upstream node_js {
server 0.0.0.0:3000;
server 0.0.0.0:4000;
server 123.131.121.122;
}
# 代理转发到配置的服务器
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://node_js;
}
}

upstream:配置要映射的服务器

node_js:自定义,可以指定为项目的域名或者代号

server下的location 我们将 / 下的全部请求转发到 http://nide_js ,也就是我们上面配置的服务器列表中的某一台服务器上。具体是哪台服务器,nginx会根据配置的调度算法来确认。

示例:访问 yourdomain.com:80/  ===> 根据负载均衡策略,转发到 upstream定义的服务中。

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;
}
# 配置 HTTP 到 HTTPS 的永久重定向
server 
{
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}

参考一个可视化配置的工具:

github开源代码:github.com/digitalocean/nginxconfig.io

应用网址:https://www.digitalocean.com/community/tools/nginx?domains.1.server.domain=example2.com&global.app.lang=zhCN

这个网站支持的功能配置:反向代理、HTTPS、HTTP/2、IPv6, 缓存、WordPress、CDN、Node.js 支持、 Python (Django) 服务器等等。

如果想在线进行配置,进入网站按照自己的需求配置。选择你的场景,填写好参数,系统就会自动生成配置文件。


之前搞Elasticsearch的时候写了一份md文件,包括es基本请求的使用,动态模板的配置和java模板操作es的使用接口,后续会整理发布上来。

你可能感兴趣的:(nginx,http)