前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nginx 详解 - 详细配置说明

nginx 详解 - 详细配置说明

作者头像
solocoder
发布于 2022-04-06 05:22:38
发布于 2022-04-06 05:22:38
4.3K00
代码可运行
举报
文章被收录于专栏:大前端客栈大前端客栈
运行总次数:0
代码可运行

本文为看视频《Nginx入门到实践》总结的学习笔记。

一、服务器基础配置

远程链接服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh 用户名@公网ip

默认的用户名是root,假如公网 ip 是 a.b.c.d, 那链接命名就是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh root@a.b.c.d

下载安装基础库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim

关闭 iptables

查看iptables规则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -L
或
iptables -t nat -L

关闭 iptables 规则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -F
或
iptables -t nat -F

关闭 SELinux

查看是否打开

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getenforce

关闭

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setenforce 0

二、Nginx 简介及安装

Nginx 是一个开源且高性能、高可靠的 HTTP 中间件、代理服务。

安装Nginx

打开官网 https://nginx.org/en/linux_packages.html#stable

To set up the yum repository for RHEL/CentOS, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx] name=nginx repo baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/ gpgcheck=0 enabled=1

Replace “OS” with “rhel” or “centos”, depending on the distribution used, and “OSRELEASE” with “6” or “7”, for 6.x or 7.x versions, respectively.

三、安装目录及配置讲解

3.1 安装目录讲解

查看nginx的所有安装目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rpm -ql nginx

然后得到如下配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ ~]# rpm -ql nginx

nginx日志轮转,用于logrotate服务的日志切割
/etc/logrotate.d/nginx
nginx主配置文件
/etc/nginx/nginx.conf
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
cgi配置相关,fastcgi配置
/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
编码转换映射转化文件
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf
设置http协议的 Content-Type 与扩展名对应关系
/etc/nginx/mime.types
用于配置出系统守护进程管理器管理方式
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
nginx模块目录
/etc/nginx/modules
/usr/lib64/nginx/modules
/usr/lib64/nginx
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
nginx服务的启动管理的终端命令
/usr/sbin/nginx
/usr/sbin/nginx-debug
nginx的手册和帮助文件
/usr/share/doc/nginx-1.14.0
/usr/share/doc/nginx-1.14.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
nginx 的缓存目录
/var/cache/nginx
nginx日志目录
/var/log/nginx

3.2 安装编译参数

命令 nginx -V 查看所有编译参数

3.3 Nginx 默认配置语法

参数

说明

user

设置nginx服务的系统使用用户

worker_processes

工作进程数(一般与服务器核数保持一致)

rror_log

nginx的错误日志

pid

nginx服务启动时候pid

events -> worker_connections

每个进程允许最大连接数

events -> use

工作进程数

nginx 的默认配置文件

文件路径 /etc/nginx/conf.d/default.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen       80;
    server_name  localhost;

<span class="hljs-comment">#charset koi8-r;</span>
<span class="hljs-comment">#access_log  /var/log/nginx/host.access.log  main;</span>

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}

<span class="hljs-comment">#error_page  404              /404.html;</span>

<span class="hljs-comment"># redirect server error pages to the static page /50x.html</span>
<span class="hljs-comment">#</span>
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

<span class="hljs-comment"># proxy the PHP scripts to Apache listening on 127.0.0.1:80</span>
<span class="hljs-comment">#</span>

<span class="hljs-comment">#location ~ \.php$ {</span>
<span class="hljs-comment">#    proxy_pass   http://127.0.0.1;</span>
<span class="hljs-comment">#}</span>

<span class="hljs-comment"># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span>
<span class="hljs-comment">#</span>
<span class="hljs-comment">#location ~ \.php$ {</span>
<span class="hljs-comment">#    root           html;</span>
<span class="hljs-comment">#    fastcgi_pass   127.0.0.1:9000;</span>
<span class="hljs-comment">#    fastcgi_index  index.php;</span>
<span class="hljs-comment">#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;</span>
<span class="hljs-comment">#    include        fastcgi_params;</span>
<span class="hljs-comment">#}</span>

<span class="hljs-comment"># deny access to .htaccess files, if Apache's document root</span>
<span class="hljs-comment"># concurs with nginx's one</span>
<span class="hljs-comment">#</span>
<span class="hljs-comment">#location ~ /\.ht {</span>
<span class="hljs-comment">#    deny  all;</span>
<span class="hljs-comment">#}</span>

}

可以去 /usr/share/nginx/html/index.html 修改默认的展示页面,也可以去 /usr/share/nginx/html/50x.html 修改错误页面。

修改后重启 nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl reload nginx.service
或
systemctl restart nginx.service

检查 nginx 配置,结果出现 successful 表示成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx -t -c /etc/nginx/nginx.conf

重新加载配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx -s reload -c /etc/nginx/nginx.conf

四、常见 Nginx 中间架构

  1. 静态资源WEB服务
  2. 代理服务
  3. 负载均衡调度器 SLB
  4. 动态缓存

4.1 静态资源WEB服务

配置语法-文件读取
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: sendfile on|off;
Default: sendfile off;
Context: http,server,location,if in location

引读:--with-file-aio 异步文件读取

配置语法- tcp_nopush
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: tcp_nopush on|off;
Default: tcp_nopush off;
Context: http,server,location
配置语法- tcp_nodelay
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: tcp_nodelay on|off;
Default: tcp_nodelay on;
Context: http,server,location
配置语法- 压缩
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: gzip_comp_level level;
Default: gzip_comp_level 1;
Context: http,server,location
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: gzip_http_version 1.0|1.1;
Default: gzip_http_version 1.1;
Context: http,server,location
扩展 Nginx 压缩模块
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
预读 gzip 功能
http_gzip_static_module

应用支持 gunzip 的压缩方式
http_gunzip_module
浏览器缓存设置

配置语法 - expires

添加 Cache-Control、Expires 头

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax:expires [modified] time;
        expires epoch | max | off
Default: expires off;
Context: http, server, location, if in location
跨域

*表示允许所有的网站跨域,为了安全起见可以设置仅需要的网址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ .*\.(htm|html)$ {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
    root /opt/app/code
}
基于 http_refer 防盗链配置模块
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: valid_referers none | blocked | server_names | string...;
Default: -
Context: server, location,

4.2 代理服务

正向代理与反向代理的区别在于代理的对象不一样

  • 正向代理代理的对象是客户端
  • 反向代理代理的对象是服务端

配置语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax: proxy_pass URL
Default: -
Context: location,if in location,limit_except

URL 一般是以下三种

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:8080/uri/
https://192.168.1.1:8000/uri/
http://unix:/tmp/backend.socket:/uri/;

4.3 负载均衡

HttpIndex模块

这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。

配置范例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
resolver 10.0.0.1;

upstream dynamic {
    zone upstream_dynamic 64k;
<span class="hljs-built_in">hash</span> <span class="hljs-variable">$request_uri</span>;  <span class="hljs-comment">#按照url的hash值来分配,同一个url分配到同一个服务器</span>

server backend1.example.com      weight=5;
server backend2.example.com:8080 fail_timeout=5s slow_start=30s;
server 192.0.2.1                 max_fails=3;
server backend3.example.com      resolve;
server backend4.example.com      service=http resolve;

server backup1.example.com:8080  backup;
server backup2.example.com:8080  backup;

}
server {
    location / {
        proxy_pass http://dynamic;
        health_check;
    }
}

状态解释

配置

说明

down

当前的server暂时不参与负载均衡

backup

预留的备份服务器

max_fails

允许请求失败的次数

fail_timeout

经过max_fails 失败后,服务暂停的时间

max_conns

限制最大的接收的连接数

调度算法

配置

说明

轮询

按时间顺序逐一分配到不停的后端服务器

加权轮询

weight值越大,分配到的访问几率越高

ip_hash

每个请求按照访问IP的hash结果分配,这样来自同一个ip固定访问一个后端服务器

url_hash

按照访问的URL的hash结果来分配请求,使每个URL定向到同一个后端服务器

least_conn

最少连接数,哪个机器连接数少就分发

hash关键数值

hash自定义的key

4.4 缓存

缓存类型分类:客户端缓存,代理缓存,服务端缓存

proxy_cache

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax:    proxy_cache zone | off;
Default:    
proxy_cache off;
Context:    http, server, location

proxy_cache_path

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax:    proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];
Default:Context:    http

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m use_temp_path=off;

map $request_method $purge_method {
    PURGE   1;
    default 0;
}
server {
    ...
    location / {
        proxy_pass http://backend;
        proxy_cache cache_zone;
        proxy_cache_key $uri;
        proxy_cache_purge $purge_method;
        # 当分配的服务器出现50X 错误时分配另一台服务器
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504
    }
}

五、Nginx深度学习

5.1 动静分离

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
upstream java_api{
    server 127.0.0.1:8080;
}
server {
    ...
    #匹配到jsp结尾的请求去请求服务器
    location ~ \.jsp$ {
        proxy_pass http://java_api;
        index index.html index.htm;
    }
    
<span class="hljs-comment">#匹配到图片资源返回本地的内容</span>
location ~ \.(jpg|png|gif)$ {
    expires 1h;
    gzip on;
}

}

5.2 Nginx 的 rewrite规则

作用:实现 url 重写以及重定向

使用场景:

  • URL 访问跳转,支持开发设计 ​ 页面跳转、兼容性支持、展示效果等
  • SEO优化
  • 维护。后台维护、流量转发等
  • 安全

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax:    rewrite regex replacement [flag];
Default:Context:    server, location, if

If the specified regular expression matches a request URI, URI is changed as specified in the *replacement* string. The rewrite directives are executed sequentially in order of their appearance in the configuration file. It is possible to terminate further processing of the directives using flags. If a replacement string starts with “http://”, “https://”, or “$scheme”, the processing stops and the redirect is returned to a client.

An optional *flag* parameter can be one of:

  • last 停止rewrite检测 stops processing the current set of ngx_http_rewrite_module directives and starts a search for a new location matching the changed URI;
  • break 停止rewrite检测 stops processing the current set of ngx_http_rewrite_module directives as with the break directive;
  • redirect 返回302临时重定向,地址栏会显示跳转后的地址 returns a temporary redirect with the 302 code; used if a replacement string does not start with “http://”, “https://”, or “$scheme”;
  • permanent 返回302永久重定向,地址栏会显示跳转后的地址 returns a permanent redirect with the 301 code.

The full redirect URL is formed according to the request scheme ($scheme) and theserver_name_in_redirect and port_in_redirect directives.

Example:

server { ... rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last; rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra last; return 403; ... }

But if these directives are put inside the “/download/” location, the last flag should be replaced bybreak, or otherwise nginx will make 10 cycles and return the 500 error:

location /download/ { rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 break; rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra break; return 403; }

If a *replacement* string includes the new request arguments, the previous request arguments are appended after them. If this is undesired, putting a question mark at the end of a replacement string avoids having them appended, for example:

rewrite ^/users/(.*)$ /show?user=$1? last;

If a regular expression includes the “}” or “;” characters, the whole expressions should be enclosed in single or double quotes.

5.3 安全校验 secure_link

指定并允许检查请求的链接的真实性以及保护资源免遭未授权的访问

限制链接生效周期

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax:    secure_link expression;
Default:Context:    http, server, location

Syntax:    secure_link_md5 expression;
Default:Context:    http, server, location

Example:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location /s/ {
    secure_link $arg_md5,$arg_expires;
    secure_link_md5 "$secure_link_expires$uri$remote_addr secret";

    if ($secure_link = "") {
        return 403;
    }

    if ($secure_link = "0") {
        return 410;
    }

    ...
}

5.3 geoip_module 模块

基于 IP 地址匹配 MaxMind GeoIP 二进制文件,读取 IP 所在地域信息

安装: yum install nginx-module-geoip

使用场景

  • 区别国内外做HTTP 访问规则
  • 区别国内城市地域做 HTTP 访问规则

5.4 配置 HTTPS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}
HTTPS 服务优化
  • 激活 keepalive 长连接
  • 设置 ssl session 缓存
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server{
    listen          443;
    server_name  116.62.103.228 jeson.t.imooc.io;
    keepalive_timeout  100;
    
ssl on;
ssl_session_cache  shared:SSL:10m;
ssl_session_timeout  10m;

ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;

index index.html index.htm;
location / {
    root /opt/app/code;
}

}

5.5 Nginx 与 Lua 开发

Lua 是一个简洁、轻量、可扩展的脚本语言

Nginx + Lua 优势:充分的结合 Nginx 的并发处理 epoll 优势和 Lua 的轻量实现简单的功能且高并发的场景。

安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install lua
运行 lua 有两种方式:命令行和脚本
注释
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 行注释
--[[
    块注释
--]]

六、Nginx 常见问题

多个 server_name 的优先级

如果多个文件配置有相同的 server_name ,根据文件名先读取到哪个文件就加载哪个文件的配置

location 匹配优先级
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
=  进行普通字符精确匹配,也就是完全匹配
^~ 表示普通字符匹配,使用前缀匹配
~ \~*  表示执行一个正则匹配()

前两种匹配到之后就不往下继续匹配了,最后一种会继续往下匹配,如果没有匹配到,就用它的匹配。也就是前两种优先级比第三种高。

try_files 的使用

按顺序检查文件是否存在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location / {
    try_files $uri $uri/ /index.php;
}

七、Nginx 性能优化

7.1 文件句柄

文件句柄:linux\Unix 一切皆文件,文件句柄就是一个索引

设置方式:系统全局性修改,用户局部性修改,进程局部性修改

修改方法:

系统全局修改和针对用户修改
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/security/limits.conf

加入以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 给root用户设置
root soft nofile 10000
root hard nofile 10000
# 给所有用户全局设置
*    soft nofile 10000
*    hard nofile 10000

soft 不是强制性的,超过设置的值会提醒但不强制执行;hard 会强制执行

针对进程修改
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/nginx/nginx.conf

添加以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
worker_rlimit_nofile 20000

7.2 CPU 亲和

查看当前服务器的 CPU 个数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /proc/cpuinfo | grep "physical id"|sort|uniq|wc -l

查看 CPU 核数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /proc/cpuinfo | grep "cpu cores"|uniq

worker_processes = CPU 个数 * CPU 核数

假如有 2 个 CPU,每个 CPU 有 8 核,那 worker_processes 应该是16

打开 nginx 配置文件 vim /etc/nginx/nginx.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
worker_processes  16;
worker_cpu_affinity  auto;

然后刷新nginx配置 nginx -s reload -c /etc/nginx/nginx.conf

7.3 Nginx 的通用配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user  nginx;
worker_processes  1;
worker_cpu_affinity auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
worker_rlimit_nofile 10000;
events {
    use epoll;
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
charset utf-8;

log_format  main  <span class="hljs-string">'$remote_addr - $remote_user [$time_local] "$request" '</span>
                  <span class="hljs-string">'$status $body_bytes_sent "$http_referer" '</span>
                  <span class="hljs-string">'"$http_user_agent" "$http_x_forwarded_for"'</span>;

access_log  /var/<span class="hljs-built_in">log</span>/nginx/access.log  main;

sendfile        on;
<span class="hljs-comment">#tcp_nopush     on;</span>

keepalive_timeout  65;

gzip  on;
gzip_disable  <span class="hljs-string">"MSIE [1-6]\."</span>;
gzip_http_version 1.1;

include /etc/nginx/conf.d/*.conf;

}

八、基于 Nginx 架构的安全

8.1 常见的恶意行为及防范手段

常见恶意行为:爬虫行为和恶意抓取、资源盗用

常用防范手段:

基础防盗链功能:目的不让恶意用户轻易爬取网站数据

secure_link_module: 提高数据安全性,对数据增加加密验证和失效性,适合核心重要数据

access_module: 对后台、部分用户服务的数据提供 IP 防控

8.2 常见的攻击手段

后台密码撞库

通过猜测密码字段不断对后台系统登录性尝试,获取后台登录密码

防范手段:

  • 后台登录密码复杂度
  • access_module 对后台提供 IP 防控
  • 预警机制
文件上传漏洞
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ^~ /upload{
    root /opt/app/images;
    if($requst_filename ~*(.*)\.php){
        return 403;
    }
}
SQL 注入

利用未过滤/未审核用户输入的攻击方法,让应用运行本不应该运行的 SQL 代码

Nginx + Lua 防火墙实现:https://github.com/loveshell/ngx_lua_waf

以上就是 Nginx 学习笔记的全部内容。

项目地址:https://github.com/cachecats/coderiver

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/11/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
每月50次的限制
每月50次的限制
11点赞举报
昨天晚上我也看见了,当时太晚了就睡了,今天打开网页看这一条又删掉了。
昨天晚上我也看见了,当时太晚了就睡了,今天打开网页看这一条又删掉了。
回复回复点赞举报
推荐阅读
【CodeBuddy】编程最佳搭子,10分钟手搓网页版2048小游戏
在以前,我们通常是一个屏幕写代码,一个屏幕看文档,剩下的地方看预览,而看文档的这个屏幕压力最大:数十个标签页杂乱堆砌,代码写得正爽呢忘记了某个API用法,又得切回浏览器一个个找,去必应一个个搜......
Ar-Sr-Na
2025/05/12
900
中国版Cursor | 我用CodeBuddy Craft 3分钟复刻NFC经典游戏
做为一个懒人程序员,从AI迅速发展开始就一直在寻找能够替代码农编码的AI工具。从最早的GitHub Copilot,到CodeGeeX,再到Bito。紧接着后面的Cursor,Trae等等。技术生态发展之迅猛,让牛马们直呼学不完。
有一只柴犬
2025/05/13
1731
中国版Cursor | 我用CodeBuddy Craft 3分钟复刻NFC经典游戏
前端开发的春天!腾讯云CodeBuddy+Figma MCP快速还原设计稿
大家好,我是星哥,之前介绍过什么是MCP,在本地配置MCP今天继续介绍使用腾讯云CodeBuddy+Figma MCP快速还原设计稿。
星哥玩云
2025/05/16
300
前端开发的春天!腾讯云CodeBuddy+Figma MCP快速还原设计稿
AI 编程神器 CodeBuddy 体验报告:对话式开发 + 智能补全,真香!
在当今 AI 技术蓬勃发展的编程领域,各类智能编程工具不断涌现,为开发者们带来了全新的编程体验。腾讯云推出的 CodeBuddy 便是其中一款极具创新性的工具,它凭借强大的功能和出色的性能,在众多编程辅助工具中脱颖而出。
架构师精进
2025/05/13
1820
AI 编程神器 CodeBuddy 体验报告:对话式开发 + 智能补全,真香!
CodeBuddy优雅入场!没有最强只有更强
在代码的世界里,键盘的敲击声曾是开发者思维的唯一外化,而今,一种新的“协作旋律”正在改变这一切,AI代码助手正从工具进化为开发者的“第二大脑”。从自动补全一行代码到理解项目全局逻辑,从生成测试用例到优化算法性能,这些智能助手不仅让编码效率呈指数级提升,更在重塑软件开发的本质:当机器学会“理解”需求、“创造”代码,甚至预判错误,程序员的角色正从“码农”蜕变为“架构师”。
闫同学
2025/05/13
2222
【人工智能】自然语言编程革命:腾讯云CodeBuddy实战5步搭建客户管理系统,效率飙升90%
在代码量激增、技术迭代加速的今天,开发者面临两大核心挑战:效率瓶颈与质量风险。腾讯云代码助手CodeBuddy通过AI重构开发流程,为开发者提供三重核心价值:
蒙奇D索隆
2025/05/13
1251
【人工智能】自然语言编程革命:腾讯云CodeBuddy实战5步搭建客户管理系统,效率飙升90%
CodeBuddy腾讯云代码助手:我的首席编程搭子
在编程的世界里,一个得力的助手往往能让我们的工作事半功倍。最近,我有幸体验了腾讯云推出的CodeBuddy代码助手,这款工具不仅集成了众多实用的功能,更在最新升级中引入了全新软件开发智能体Craft、国内首个支持MCP(Multi-Cloud Portability,多云可移植性)的代码助手等创新特性。接下来,我将分享我的使用体验,以及CodeBuddy如何成为我工作中的首席编程搭子。
熊猫钓鱼
2025/05/08
3160
CodeBuddy腾讯云代码助手:我的首席编程搭子
腾讯云代码助手CodeBuddy初体验
大模型的应用如火如荼,辅助编程是其中一个很适合大模型发挥的场景,通过交互提供给开发人员编程相关的辅助,降低了开发门槛,解放劳动力,当然这是双刃剑,生成的代码是否安全可靠,需要格外关注。
bisal
2025/05/13
1940
腾讯云代码助手CodeBuddy初体验
半小时快速入门Spring AI:使用腾讯云编程助手CodeBuddy 开发简易聊天程序
随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI集成到自己的应用中。人工智能正在迅速改变各行各业的工作方式,从自动化客服到智能推荐系统,AI的应用几乎无处不在。Spring AI作为一种开源框架,提供了强大的功能,使开发者能够轻松集成AI到Spring Boot应用中。结合腾讯云编程助手CodeBuddy的帮助,开发者不仅可以大幅度加快开发速度,还能减少常见的开发错误。CodeBuddy通过自动化代码生成和错误提示,特别适合那些对AI技术感兴趣却又没有太多开发经验的用户。
努力的小雨
2025/05/13
1910
程序员福音!CodeBuddy Craft智能体,一行代码没写就下班?
“我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:
Lion 莱恩呀
2025/05/02
2051
程序员福音!CodeBuddy Craft智能体,一行代码没写就下班?
手把手教你如何利用CodeBuddy编写属于自己的AI助手
接下来就和大家介绍这款代码助手的神奇之处吧,据说腾讯云代码助手(CodeBuddy)是腾讯自研的AI编程提效工具,凭借腾讯混元与 DeepSeek 混合模型,专为开发者打造。CodeBuddy不仅支持200+编程语言、兼容多种主流IDE,是国内首个支持 MCP 的代码助手,还为开发者提供开发智能体 Craft、智能代码补全、单元测试、代码诊断等多项高效功能,帮助开发者在编码过程中节省时间、提升效率。目前腾讯内部 85% 以上的开发者已使用 CodeBuddy,编码时间平均缩短 40% 以上,AI生成代码占比超四成,研发效率提升超 16%。
芯动大师
2025/05/14
840
手把手教你如何利用CodeBuddy编写属于自己的AI助手
中国版 Cursor---腾讯云 CodeBuddy | 从安装VSCode到数独小游戏问世
在正文开始之前,先引入一下故事背景:其实,自己最初选择编程行业,也是想自己开发一个小游戏啥的,主要是为了娱乐。没想到进入了编程行业之后,就变成了后端Java 开发者,虽然可能和自己期望的有点差距,但是在Java 语言行业待久了,也就习惯了。只是心里对于做一个小游戏的念想一直还在。恰逢中国版Cursor—- 腾讯云CodeBuddy 来了,对于小游戏的实现也看到了曙光,下面闲话少说,先来介绍一下我们今天的主角。什么是CodeBuddy?
六月的雨在Tencent
2025/05/13
3480
揭秘 CodeBuddy:全方位测评后,我愿称它为开发者 “梦中情辅”
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
Undoom
2025/05/12
1520
中国版Cursor:CodeBuddy腾讯云代码助手使用体验
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴”
卷福同学
2025/05/14
4330
中国版Cursor:CodeBuddy腾讯云代码助手使用体验
中国版 Cursor:CodeBuddy
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
程序员NEO
2025/05/13
1830
中国版 Cursor:CodeBuddy
三句话让CodeBuddy给我写一个MC MOD!堪称中国版 Cursor!
众所周知~我是个超级MC迷。其实早就想做一个属于自己的模组了,但是一直没时间学Java,也不知道怎么下手,所以就一直拖着。
MGS浪疯
2025/05/13
1450
三句话让CodeBuddy给我写一个MC MOD!堪称中国版 Cursor!
中国人自己的Cursor?腾讯CodeBuddy从零打造家庭相册
大家好,我是星哥,作为一个二手的高级程序猿,五一出去游玩跟家人的照片想要做个一个web页面分享给家人,今天就用出品的腾讯云代码助手(CodeBuddy)一行代码都不用自己写,看能不能实现的我小愿望。
星哥玩云
2025/05/13
1000
中国人自己的Cursor?腾讯CodeBuddy从零打造家庭相册
当代码有了灵魂:一名全栈工程师的CodeBuddy手记
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
熊猫钓鱼
2025/05/17
00
CodeBuddy终极测评:中国版Cursor的开发革命(含安装指南+HTML游戏实战)
腾讯云CodeBuddy是一款基于混元大模型和DeepSeek双引擎的AI编程辅助工具,提供智能代码补全、端到端代码生成和企业级功能。其核心优势包括中文SQL优化、Figma设计稿转代码等特色功能,支持VSCode等IDE快速安装。通过实战案例展示了从需求到代码生成的完整流程,并具备代码翻译、性能优化和团队协作能力,在格式化、代码重构等场景下表现优异,是提升开发效率的强力助手。
海拥
2025/05/13
2511
文科生0基础使用Codebuddy,生成“哆啦A梦”机器人产品介绍网站
“我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴”;
Vivitalk
2025/05/11
1621
文科生0基础使用Codebuddy,生成“哆啦A梦”机器人产品介绍网站
推荐阅读
相关推荐
【CodeBuddy】编程最佳搭子,10分钟手搓网页版2048小游戏
更多 >
LV.5
腾讯云TDP常务理事
目录
  • 一、服务器基础配置
    • 远程链接服务器
    • 下载安装基础库
    • 关闭 iptables
    • 关闭 SELinux
  • 二、Nginx 简介及安装
    • 安装Nginx
  • 三、安装目录及配置讲解
    • 3.1 安装目录讲解
    • 3.2 安装编译参数
    • 3.3 Nginx 默认配置语法
      • nginx 的默认配置文件
  • 四、常见 Nginx 中间架构
    • 4.1 静态资源WEB服务
      • 配置语法-文件读取
      • 配置语法- tcp_nopush
      • 配置语法- tcp_nodelay
      • 配置语法- 压缩
      • 扩展 Nginx 压缩模块
      • 浏览器缓存设置
      • 跨域
      • 基于 http_refer 防盗链配置模块
    • 4.2 代理服务
    • 4.3 负载均衡
      • HttpIndex模块
      • 调度算法
    • 4.4 缓存
  • 五、Nginx深度学习
    • 5.1 动静分离
    • 5.2 Nginx 的 rewrite规则
    • 5.3 安全校验 secure_link
    • 5.3 geoip_module 模块
    • 5.4 配置 HTTPS
      • HTTPS 服务优化
    • 5.5 Nginx 与 Lua 开发
      • 安装
      • 运行 lua 有两种方式:命令行和脚本
      • 注释
  • 六、Nginx 常见问题
    • 多个 server_name 的优先级
    • location 匹配优先级
    • try_files 的使用
  • 七、Nginx 性能优化
    • 7.1 文件句柄
      • 系统全局修改和针对用户修改
      • 针对进程修改
    • 7.2 CPU 亲和
    • 7.3 Nginx 的通用配置
  • 八、基于 Nginx 架构的安全
    • 8.1 常见的恶意行为及防范手段
      • 常用防范手段:
    • 8.2 常见的攻击手段
      • 后台密码撞库
      • 文件上传漏洞
      • SQL 注入
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档