Nginx常用配置

conf引用文件

 默认conf为根目录
 include ./xxx/****.conf;

http转https

server {
    listen 80;
    server_name axisk.cn,localhost;
    rewrite ^(.*)$ https://${server_name}$1 permanent;
}

443证书配置

	server {
        listen       443 ssl;
        server_name  api.axisk.cn;
        ssl_certificate     crt/axisk.cn.pem;
        ssl_certificate_key crt/axisk.cn.key;

        ssl_session_cache    shared:SSL:5m;
        ssl_session_timeout  25m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
       		proxy_pass http://192.168.0.2:8080/;
        }
}

静态目录配置

server {
    listen       80;         #监听的端口
    server_name  axisk.cn;    #监听的URL
    location / {
        root /usr/local/project/;             #项目路径
        index /index.html;
         #匹配不到任何静态资源,跳到同一个index.htmli
        try_files $uri $uri/ /index.html;       
        add_header Cache-Control no-store; #禁用缓存
    }
}

server {
    listen       80;         #监听的端口
    server_name  axisk.cn;    #监听的URL
    location / {
        alias  /usr/local/project/;             #别名模式
        index /index.html;
         #匹配不到任何静态资源,跳到同一个index.htmli
        try_files $uri $uri/ /index.html;       
        add_header Cache-Control no-store; #禁用缓存
    }
}

跨域配置

add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';

if ($request_method = 'OPTIONS') {
    return 204;
}

请求头代理转发

	proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	#代理版本
	proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
	#超时时间
    proxy_connect_timeout 30s;
    proxy_next_upstream_timeout 30s;
    proxy_next_upstream_tries 1;
### Nginx 常用配置示例与参数说明 #### 1. server 块中的常用参数 `server` 是 Nginx 中用于定义虚拟主机的关键部分,以下是常用的 `server` 参数及其作用: - **listen**: 指定服务器监听的端口号。例如:`listen 80;` 表示监听 HTTP 的标准端口[^2]。 - **server_name**: 设置服务器的域名或 IP 地址。例如:`server_name example.com;` 可以绑定到特定的域名或 IP 地址。 #### 2. location 块中的常用参数 `location` 块用于匹配 URL 并应用相应的处理逻辑。常见的参数如下: - **root**: 指定网站的根目录路径。例如:`root /var/www/html;` 将 `/` 路径映射到该目录下的文件。 - **alias**: 类似于 `root`,但它会替换匹配的部分路径。例如,在子路由部署 React 应用时使用的 `alias` 配置[^1]: ```nginx location ^~ /anan/ { alias /usr/local/nginx/html/anan/; try_files $uri $uri/ /anan/index.html; index index.html; } ``` - **try_files**: 当访问某个 URI 不存在时尝试其他替代资源。例如:`try_files $uri $uri/ /anan/index.html;` 确保即使刷新页面也不会返回 404 错误[^1]。 - **index**: 设置默认索引文件名。例如:`index index.html index.htm;` 定义了当用户访问目录时不带具体文件名时加载哪些文件作为首页[^2]。 #### 3. 日志相关配置 Nginx 支持灵活的日志记录方式,可以通过以下指令实现: - **log_format**: 自定义日志格式。例如: ```nginx log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ``` 这里定义了一个名为 `main` 的日志格式,包含了客户端地址、请求方法、状态码等信息[^4]。 - **access_log**: 记录访问日志的位置和格式。例如: ```nginx access_log /usr/local/etc/nginx/logs/host.access.log main; ``` 上述语句表示将访问日志保存至指定位置并采用之前定义好的 `main` 格式[^4]。 - **error_log**: 记录错误日志的位置和级别。例如: ```nginx error_log /home/log/nginx/www.anan.com.log warn; ``` #### 4. 性能优化相关配置 为了提升性能,通常还会加入一些额外选项: - **gzip**: 启用压缩传输来减少网络流量消耗。例如: ```nginx gzip on; ``` 此命令开启 Gzip 压缩功能。 #### 5. http 块的作用 `http` 块位于全局上下文中,主要用于封装多个 `server` 实体以及其他高级特性,比如代理转发、缓存管理、日志定制等功能。它还可以用来引入外部配置文件或者调整 MIME 类型支持范围等[^5]。 ```nginx http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } ``` 以上是一个典型的最小化 Nginx 配置实例,展示了如何通过组合不同层次上的指令完成基本服务搭建工作流程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值