Nginx作为一个轻量级的HTTP服务器,相比Apache优势也是比较明显的,在性能上它占用资源少,能支持更高更多的并发连接,从而达到提高访问效率;在功能上它是一款非常优秀的代理服务器与负载均衡服务器;在安装配置上它安装,配置都比较简单。
关于Nginx部署、配置的文章公众号已经发布过很多:
深度总结|深入浅出Nginx
HTTP服务器Nginx服务介绍续
Nginx优化配置详解
1分钟搞定 Nginx 版本的平滑升级与回滚
指南:提高Nginx服务器硬度的12个技巧
大流量、高负载场景 Nginx+Linux 性能调优
利用ELK分析Nginx日志生产实战(高清多图)
文章很多,就不再逐一列举了,有兴趣的、需要的可以去公众号通过检索功能查找相关的文章。
对于Nginx一些配置的详细解释,之前也写过相关的文章:
Nginx优化配置详解
但在实际的生产配置环境中,肯定会经常遇到需要修改、或者重新增加Nginx配置的问题,有的时候需求更是多种多样,修修改改经常会出现这样、那样的一些错误,特别的烦索。
基于以上的原因,肯定很多读者伙伴经常会收集一些配置文档、或者电脑里也保存着一些自己日常的常用配置案例,但是终究还是不是很便利。今天,给大家介绍一款「超级牛掰的神器」,可以在线一键生成Nginx的配置。
网址:https://nginxconfig.io/
NGINX Config 支持 HTTP、HTTPS、PHP、Python、Node.js、WordPress、Drupal、缓存、逆向代理、日志等各种配置选项。在线生成 Web 服务器 Nginx 配置文件。
操作配置也非常简单,你需要做的只需要2步:
打开官方网站
按需求配置相关参数
系统就会自动生成特定的配置文件。虽然界面是英文的,但是功能的页面做的非常直观,生成的Nginx格式规范。
登陆之后大概的界面如下:
案例展示
配置域名:mingongge.com 实现用户访问*.mingongge.com 域名时会自动跳转到 mingongge.com 此配置,并且开启http强制跳转到https的配置。
这时,Nginx的配置就会实时自动生成在下面,我把生成的配置复制过来,如下:
/etc/nginx/sites-available/mingongge.com.conf
#文件名都给你按规则配置好了
server {
listen 443 ssl http2;
server_name mingongge.com;
# SSL
ssl_certificate /etc/letsencrypt/live/mingongge.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mingongge.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/mingongge.com/chain.pem;
# security
include nginxconfig.io/security.conf;
# additional config
include nginxconfig.io/general.conf;
}
# subdomains redirect
server {
listen 443 ssl http2;
server_name *.mingongge.com;
# SSL
ssl_certificate /etc/letsencrypt/live/mingongge.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mingongge.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/mingongge.com/chain.pem;
return 301 https://mingongge.com$request_uri;
}
# HTTP redirect
server {
listen 80;
server_name .mingongge.com;
include nginxconfig.io/letsencrypt.conf;
location / {
return 301 https://mingongge.com$request_uri;
}
}
非常的方便与快速。
官方还提供一些Nginx的基础优化配置,如下:
/etc/nginx/nginx.conf
# Generated by nginxconfig.io
user www-data;
pid /run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 65535;
events {
multi_accept on;
worker_connections 65535;
}
http {
charset utf-8;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
log_not_found off;
types_hash_max_size 2048;
client_max_body_size 16M;
# MIME
include mime.types;
default_type application/octet-stream;
# logging
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
# load configs
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
还有基于安全的配置,如下:
/etc/nginx/nginxconfig.io/security.conf
# security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
# . files
location ~ /\.(?!well-known) {
deny all;
}
都相当于是提供一些基础的模板配置,可以根据自己的实际需求去修改。
有了这个神器在手,再也不用为配置Nginx的各类配置而烦恼了!