【Nginx】Nginx 常用的基础配置

news/2024/11/9 1:50:19/

文章目录

        • 一、基础配置
        • 二、隐藏 Nginx 版本信息
        • 三、禁止ip直接访问80端口
        • 四、启动 web 服务 (vue 项目为例)
        • 五、PC端和移动端使用不同的项目文件映射
        • 六、一个web服务,配置多个项目 (location 匹配路由区别)
        • 七、配置负载均衡
        • 八、SSL 配置 HTTPS


一、基础配置

user                            root;
worker_processes                1;events {worker_connections            10240;
}http {log_format                    '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';include                       mime.types;default_type                  application/octet-stream;sendfile                      on;#autoindex                    on;#autoindex_exact_size         off;autoindex_localtime           on;keepalive_timeout             65;gzip                          on;gzip_disable                  "msie6";gzip_min_length               100;gzip_buffers                  4 16k;gzip_comp_level               1;gzip_types                  text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_types                    "*";gzip_vary                     off;server_tokens                 off;client_max_body_size          200m;server {listen                      80 default_server;server_name                 _;return                      403 /www/403/index.html;}include                       ../serve/*.conf;
}

二、隐藏 Nginx 版本信息

http {server_tokens         off;
}

三、禁止ip直接访问80端口

server {listen                80 default;server_name           _;return                500;
}

四、启动 web 服务 (vue 项目为例)

server {# 项目启动端口listen            80;# 域名(localhost)server_name       _;# 禁止 iframe 嵌套add_header        X-Frame-Options SAMEORIGIN;# 访问地址 根路径配置location / {# 项目目录root 	    html;# 默认读取文件index           index.html;# 配置 history 模式的刷新空白try_files       $uri $uri/ /index.html;}# 后缀匹配,解决静态资源找不到问题location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { root           html/static/;}# 图片防盗链location ~/static/.*\.(jpg|jpeg|png|gif|webp)$ {root              html;valid_referers    *.deeruby.com;if ($invalid_referer) {return          403;}}# 访问限制location /static {root               html;# allow 允许allow              39.xxx.xxx.xxx;# deny  拒绝deny               all;}
}

五、PC端和移动端使用不同的项目文件映射

server {......location / {root /home/static/pc;if ($http_user_agent ~* '(mobile|android|iphone|ipad|phone)') {root /home/static/mobile;}index index.html;}
}

六、一个web服务,配置多个项目 (location 匹配路由区别)

server {listen                80;server_name           _;# 主应用location / {root          html/main;index               index.html;try_files           $uri $uri/ /index.html;}# 子应用一location ^~ /store/ {proxy_pass          http://localhost:8001;proxy_redirect      off;proxy_set_header    Host $host;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-Forproxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;}# 子应用二location ^~ /school/ {proxy_pass          http://localhost:8002;proxy_redirect      off;proxy_set_header    Host $host;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;}# 静态资源读取不到问题处理rewrite ^/api/profile/(.*)$ /(替换成正确路径的文件的上一层目录)/$1 last;
}# 子应用一服务
server {listen                8001;server_name           _;location / {root          html/store;index               index.html;try_files           $uri $uri/ /index.html;}location ^~ /store/ {alias               html/store/;index               index.html index.htm;try_files           $uri /store/index.html;}# 接口代理location  /api {proxy_pass          http://localhost:8089;}
}# 子应用二服务
server {listen                8002;server_name           _;location / {root          html/school;index               index.html;try_files           $uri $uri/ /index.html;}location ^~ /school/ {alias               html/school/;index               index.html index.htm;try_files           $uri /school/index.html;}# 接口代理location  /api {proxy_pass          http://localhost:10010;}
}

七、配置负载均衡

upstream my_upstream {server                http://localhost:9001;server                http://localhost:9002;server                http://localhost:9003;
}server {listen                9000;server_name           test.com;location / {proxy_pass          my_upstream;proxy_set_header    Host $proxy_host;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;}
}

八、SSL 配置 HTTPS

server {listen                      80;server_name                 www.xxx.com;# 将 http 重定向转移到 httpsreturn 301 https://$server_name$request_uri;
}server {listen                      443 ssl;server_name                 www.xxx.com;ssl_certificate             /etc/nginx/ssl/www.xxx.com.pem;ssl_certificate_key         /etc/nginx/ssl/www.xxx.com.key;ssl_session_timeout         10m;ssl_ciphers                 ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers   on;location / {root                    /project/xxx;index                   index.html index.htm index.md;try_files               $uri $uri/ /index.html;}
}

http://www.ppmy.cn/news/35924.html

相关文章

uniapp - APP云打包、蒲公英平台发布APP的步骤

一、uniapp 云打包 1、注册 dcloud 开发者 首先需要注册一个 dcloud 开发者的账号 dcloud开发者中心:登录 (dcloud.net.cn) 根据流程注册即可。 2、云打包(已安卓为例) 项目创建完成后,查看 dcloud 开发者中心,看是否…

kaggle注册以及数据集下载全流程

kaggle官网:Kaggle Competitions 目录 一、注册 二、数据集如何下载: 1.第一步,登录进入kaggle网站,导航栏search里搜索自己要下载的数据集 2.第二步,在网站右上角个人中心头像那里点击进去account ​3.第三步&a…

突然裁员1/3,原因竟是算法判定员工“不敬业且效率低”?

今天,一个“AI裁员”的话题上了知乎热搜: 据统计,这家名叫 Xsolla 的俄罗斯公司已经用AI裁掉了大约三分之一的员工。 对于这种充满争议的反常举动,一些知乎er已经开始了合理“阴谋论”: “这算个P的AI,无非…

毕业设计——基于小程序云开发的校园二手交易平台(附源码)

本系统基于微信小程序云开发,采用小程序原生框架,不需要后端开发,数据库和CMS云开发全帮你搞定,对后端开发能力薄弱的同学超友好的有木有,只要你学过HTMLCSSJS就能实现所有功能。 一、功能介绍 使用该系统的角色有两…

Unity IL2CPP 游戏分析入门

一、目标 很多时候App加密本身并不难,难得是他用了一套新玩意,天生自带加密光环。例如PC时代的VB,直接ida的话,汇编代码能把你看懵。 但是要是搞明白了他的玩法,VB Decompiler一上,那妥妥的就是源码。 U…

Python实战,爬取金融期货数据

大家好,我是毕加锁。 今天给大家带来的是 Python实战,爬取金融期货数据 文末送书! 文末送书! 文末送书! 任务简介 首先,客户原需求是获取https://hq.smm.cn/copper网站上的价格数据(注:获取的是…

reposync命令详解--reposync同步aliyunyum库到本地

参考: reposync - 命令 - -桃枝夭夭- - 博客园 0. 简介 reposync 命令简单来说就是可以把指定外网源(repo id)的包同步到本地文件中 1. 安装 reposync 命令 [rootV10SP1-1 ~]# yum install -y dnf-plugins-core2. 常用选项以及参数 选项含义-c [fil…

现在大专生转IT可行吗?

当然可行的。 大专也是人,为什么不可以选择喜欢的专业学习,现在大学生遍地都是,学历已经不是限制你发展的因素了。有的人就是不擅长理论学习,更喜欢技术。IT也只是一个普普通通的技术行业,跟其他技术行业一样&#xf…