腾讯云centos7 环境搭建(2)nginx安装

本文介绍如何在CentOS上安装Nginx并进行基本配置,包括设置自动启动、配置文件详解及前后端分离下的静态页面代理设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

yum install nginx

安装之后,可以查看nginx的默认安装目录

[root@VM_0_9_centos ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz

以下是Nginx的默认路径:

(1) Nginx配置路径:/etc/nginx/
(2) PID目录:/var/run/nginx.pid
(3) 错误日志:/var/log/nginx/error.log
(4) 访问日志:/var/log/nginx/access.log
(5) 默认站点目录:/usr/share/nginx/html

事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf 中查询到

设置自动启动

# 设置自动启动
systemctl enable nginx

[root@VM_0_9_centos nginx]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service

# 启动nginx
systemctl start nginx

nginx配置

在真实的环境中,通常一个nginx会有多个站点的配置,如果所有站点的配置信息都放在nginx.conf中那将非常不便于管理和维护,为此我们可以将每个站点的配置信息放在单独的文件中,然后在nginx中include进来。
然后编辑nginx.conf为如下内容

user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
#include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    charset             utf-8;

    #访问日志
    client_max_body_size 30m;
    client_header_buffer_size 64k;
    large_client_header_buffers 4 64k;

    gzip on;
    gzip_min_length 2k;
    gzip_comp_level 2;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;

    #proxy_buffering on;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 512k;
    proxy_buffers 4 512k;
    proxy_busy_buffers_size 512k;
    proxy_temp_file_write_size 512k;

    keepalive_timeout 60;
    tcp_nodelay on;
    tcp_nopush on;
    sendfile on;
    types_hash_max_size 2048;

    #开启限制IP连接数的时候需要使用
    #limit_zone crawler $binary_remote_addr 10m;

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

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }
}

www.goodapp.net的配置文件www.goodapp.net.conf的内容

 server {
    listen 80;
    server_name www.goodapp.net;
    index default;
    root /tmp;
    error_page                      400 402 403 404 405 406 410 411 413 416 500 501 502 503 504 /error.html;
    error_page                      505 /error.html;

    #定义本虚拟主机的访问日志
    access_log /var/log/nginx/dev.log main;
    error_log  /var/log/nginx/dev_error.log;

    location / {
        proxy_pass              http://127.0.0.1:8080/dev/;
        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_set_header        Content-Type    $http_content_type;
        proxy_set_header        Referer $http_referer;
        proxy_set_header        User-Agent $http_user_agent;
    }
    #location /gateway/ {
    #   proxy_pass http://172.30.43.244:18003/;
    #    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_set_header        Content-Type    $http_content_type;
    #    proxy_set_header        Referer $http_referer;
    #    proxy_set_header        User-Agent $http_user_agent;
    #    proxy_set_header        apiName $http_apiName;
    #    proxy_set_header        apiUrl  $http_apiUrl;
    #    proxy_set_header        apiVersion      $http_apiVersion;
    #    proxy_set_header        jtoken  $http_jtoken;
    #    proxy_set_header        verifyCode      $http_verifyCode;
    #}
}

前后端分离静态页面代理设置

server {
    listen 9999;
    server_name _;
    index index.html index.htm;
    root /tmp;
    error_page                      400 402 403 404 405 406 410 411 413 416 500 501 502 503 504 /error.html;
    error_page                      505 /error.html;

    #定义本虚拟主机的访问日志
    access_log /var/log/nginx/yjgb.log main;
    error_log  /var/log/nginx/yjgb_error.log;
    location / {
    root /home/yjgb-web/front_end/dist;
    try_files $uri $uri/ /index.html;
    index  index.html index.htm;
    }
    location  /yjgb/ {
        proxy_pass http://118.106.83.213:8080;
        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_set_header        Content-Type    $http_content_type;
        proxy_set_header        Referer $http_referer;
        proxy_set_header        User-Agent $http_user_agent;
        proxy_set_header        apiName $http_apiName;
        proxy_set_header        apiUrl  $http_apiUrl;
        proxy_set_header        apiVersion      $http_apiVersion;
        proxy_set_header        jtoken  $http_jtoken;
        proxy_set_header        verifyCode      $http_verifyCode;
   }
}
<think>好的,我需要帮用户找到腾讯云CentOS环境配置数据库外部连接的方法。首先,用户提到了数据库,但具体是哪种数据库呢?可能是MySQL或者Redis,因为引用里有提到这两种。用户需要外部连接,所以需要配置数据库允许远程访问,同时可能涉及服务器防火墙设置。 先看引用资料,引用[3]提到用Docker运行MySQL,并且使用了--net=host,这样容器可能直接使用宿主机的网络,方便外部连接。但用户的环境腾讯云CentOS,可能需要更直接的配置方法。 引用[4]是关于在CentOS7安装配置Redis允许远程连接的教程。里面可能有绑定IP和设置密码的步骤,比如注释掉bind 127.0.0.1,关闭保护模式,设置密码,这些步骤同样适用于其他数据库如MySQL。 引用[1]中的Redis配置:注释bind行,设置密码,关闭protected-mode,这些步骤对于允许外部连接很关键。虽然用户问的是数据库,但Redis也是数据库的一种,所以这可能相关。 引用[2]提到挂载云硬盘,可能和存储路径有关,但用户的问题是关于外部连接,可能暂时不需要这部分信息。 引用[5]关于设置root密码,可能涉及到数据库的权限配置,比如MySQL的root用户允许远程登录。 现在需要整合这些信息,假设用户指的是MySQL或者Redis。如果是MySQL的话,配置步骤可能包括:修改MySQL配置文件允许远程连接,创建远程用户,设置防火墙,以及腾讯云安全组的配置。对于Redis,则是修改redis.conf,设置密码,关闭保护模式,绑定IP等。 另外,用户的环境腾讯云CentOS,所以需要注意云服务器的安全组设置,开放相应的端口,比如MySQL的3306,Redis的6379。这部分可能没有在引用中直接提到,但根据常识需要补充。 可能还需要检查SELinux和防火墙设置,确保端口是开放的。比如使用firewalld或iptables开放端口。 总结步骤可能包括: 1. 修改数据库配置文件,允许远程访问(如MySQL的bind-address,Redis的bind和protected-mode)。 2. 设置数据库用户权限,允许从远程主机登录。 3. 配置服务器防火墙,开放数据库端口。 4. 在腾讯云控制台配置安全组,允许外部IP访问数据库端口。 5. 重启数据库服务使配置生效。 需要确认用户具体是哪种数据库,但根据引用中的信息,可能同时涵盖MySQL和Redis的配置方法。需要结合引用中的具体命令和配置项,比如引用[3]中的Docker运行MySQL的参数,或者引用[4]和[1]中的Redis配置步骤。</think>### 腾讯云 CentOS 数据库外部连接配置方法 以下是针对腾讯云 CentOS 环境配置数据库(以 **MySQL** 和 **Redis** 为例)允许外部连接的详细步骤: --- #### **一、配置 MySQL 外部连接** 1. **修改 MySQL 配置文件** - 进入 MySQL 配置目录,编辑 `my.cnf` 或 `mysqld.cnf`: ```bash sudo vi /etc/my.cnf ``` - 找到 `bind-address` 配置项,将其值改为 `0.0.0.0`(允许所有 IP 连接)或注释掉该行: ``` # bind-address = 127.0.0.1 ``` [^4] 2. **创建远程访问用户并授权** - 登录 MySQL,执行以下 SQL 命令: ```sql CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 3. **开放防火墙端口** - 若使用 `firewalld`,开放 3306 端口: ```bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` 4. **配置腾讯云安全组** - 在腾讯云控制台,进入实例的 **安全组** 设置,添加入站规则:允许来源 IP 或 `0.0.0.0/0` 访问 3306 端口[^2]。 5. **重启 MySQL 服务** ```bash sudo systemctl restart mysqld ``` --- #### **二、配置 Redis 外部连接** 1. **修改 Redis 配置文件** - 编辑 `redis.conf`: ```bash sudo vi /etc/redis/redis.conf ``` - 修改以下配置项: ```bash # 注释绑定本地 IP # bind 127.0.0.1 # 关闭保护模式 protected-mode no # 设置访问密码 requirepass 你的密码 ``` [^1][^4] 2. **开放防火墙端口** - 开放 6379 端口: ```bash sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent sudo firewall-cmd --reload ``` 3. **配置腾讯云安全组** - 在安全组中添加规则,允许外部访问 6379 端口。 4. **重启 Redis 服务** ```bash sudo systemctl restart redis ``` --- #### **三、注意事项** 1. **安全风险**:开放外部连接需谨慎,建议通过安全组限制来源 IP,避免暴露到公网[^4]。 2. **数据持久化**:Redis 建议开启 `appendonly yes` 防止数据丢失。 3. **容器化部署**:若使用 Docker,需映射端口并设置网络模式(如 `--net=host`),例如: ```bash docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql:latest ``` [^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值