在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 {
# }
# }
}