CentOS 7上安装并配置Nginx监听81端口的完整指南

在CentOS 7上安装Nginx并配置监听81端口

在本教程中,我们将指导你如何在CentOS 7操作系统上安装Nginx并配置其监听81端口。此外,我们还会提供一些常见问题的解决方法,帮助你更好地管理Nginx服务器。

1. 更新系统

在安装任何软件之前,首先确保系统的所有软件包是最新的。执行以下命令来更新你的系统:

复制代码
sudo yum update -y
2. 安装Nginx

接下来,我们需要安装Nginx。首先,安装EPEL(Extra Packages for Enterprise Linux)仓库,然后使用yum安装Nginx:

复制代码
sudo yum install epel-release -y sudo yum install nginx -y
3. 配置Nginx监听81端口

安装完成后,我们需要修改Nginx的配置文件,指定Nginx监听81端口。编辑Nginx的主配置文件 /etc/nginx/nginx.conf

复制代码
sudo vi /etc/nginx/nginx.conf

server块中,添加或修改listen指令来监听81端口:

复制代码
server { listen 81; ... }
4. 配置防火墙

为了确保外部请求可以访问Nginx,我们需要配置防火墙,允许通过81端口的流量。首先启动防火墙,并添加规则以允许81端口的TCP流量:

复制代码
systemctl start firewalld sudo firewall-cmd --zone=public --add-port=81/tcp --permanent firewall-cmd --reload

如果你希望关闭防火墙并移除80端口,可以执行以下命令:

复制代码
systemctl stop firewalld firewall-cmd --zone=public --remove-port=80/tcp --permanent

通过以下命令查看防火墙的配置:

复制代码
firewall-cmd --list-all
5. 启动并启用Nginx服务

现在,可以启动Nginx服务,并设置它在系统启动时自动启动:

复制代码
sudo systemctl start nginx sudo systemctl enable nginx
6. 验证Nginx是否在81端口运行

要确认Nginx是否成功监听了81端口,可以使用以下命令:

复制代码
sudo ss -tuln | grep 81

如果一切配置正确,输出应类似于:

复制代码
tcp LISTEN 0 128 *:81 *:* tcp LISTEN 0 128 [::]:81 [::]:*
7. 访问Nginx

现在,打开浏览器并输入以下URL进行访问:

复制代码
http://<your-server-ip>:81

如果配置正确,应该会看到Nginx的默认欢迎页面。

8. 配置前端文件和接口代理

前端文件通常会存放在/usr/share/nginx/html/目录下。可以通过以下命令解压前端文件:

复制代码
sudo unzip /home/dist.zip -d /usr/share/nginx/html/

nginx.conf文件中,配置前端文件的根目录和代理接口。以下是配置文件示例:

复制代码
server { listen 81; listen [::]:81; server_name 10.xxx.xxx.138; root /usr/share/nginx/html/dist; ... }

如果你的前端需要访问后端API,可以通过配置代理来实现:

复制代码
# 服务代理 location /szapi/ { proxy_pass http://10.xxx.xxx.27:8002/; } # 扣子代理 location /cozeapi/ { proxy_pass https://api.coze.cn/; }
9. 常见问题
问题一:Nginx权限不够

如果遇到Nginx权限不够的问题,可以修改Nginx配置文件中的user指令,将其设置为root

复制代码
#user nginx; user root;

保存并退出配置文件后,重新加载Nginx配置并重启服务:

复制代码
sudo nginx -s reload sudo systemctl restart nginx
问题二:Nginx本机设置安全策略

如果你的系统启用了SELinux,可能会限制Nginx的运行。你可以暂时禁用SELinux来排除这个问题。首先,编辑SELinux配置文件:

复制代码
sudo vi /etc/selinux/config

SELINUX=enforcing改为SELINUX=disabled,然后保存退出。接下来,重启系统:

复制代码
reboot 

重启后,重新加载Nginx配置并重启服务:

复制代码
sudo nginx -s reload sudo systemctl restart nginx
总结

通过以上步骤,你已经成功在CentOS 7上安装并配置了Nginx来监听81端口。你还学会了如何配置防火墙、部署前端文件以及设置API代理。遇到常见问题时,按照本文提供的解决方案,你能够迅速排查并解决问题。

复制代码
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

#user nginx;
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/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;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

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

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       81;
        listen       [::]:81;
        server_name  10.xxx.xxx.138;
        root         /usr/share/nginx/html/dist;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }


	#服务代理
	location /szapi/ {

#        rewrite ^.+szapi/?(.*)$ /$1 break;
    	proxy_pass http://10.xxx.xxx.27:8002/;
	

    	}

        # 扣子代理
        location /cozeapi/ {

#        rewrite ^.+szapi/?(.*)$ /$1 break;
        proxy_pass https://api.coze.cn/;


        }

    }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        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;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}
相关推荐
hhhh明9 小时前
quest2+alvr+steamvr
linux·windows·quest2
dqsh0610 小时前
树莓派5+Ubuntu24.04 LTS CH348 / CH9344 驱动安装 保姆级教程
linux·c语言·单片机·嵌入式硬件·iot
menge233311 小时前
Linux DNS域名解析服务器练习
linux·运维·服务器
wsad053211 小时前
CentOS 7 更换腾讯云 yum 源及 EPEL 源
linux·centos·腾讯云
wdfk_prog11 小时前
[Linux]学习笔记系列 -- [kernel]kallsyms
linux·笔记·学习
qq_3168377512 小时前
初步压测的 nginx反向代理 到 Spring Cloud网关 到 Spring Cloud微服务的网络参考配置
nginx·spring cloud·微服务
emiya_saber12 小时前
Linux 进程调度管理
linux·运维·服务器
不脱发的程序猿12 小时前
嵌入式Linux:线程同步(读写锁)
linux·嵌入式
yangzhi_emo12 小时前
配置dns主从服务
linux·运维·服务器
SongYuLong的博客14 小时前
Linux开源代码汇总
linux·运维·服务器