一、前置操作

为了排除其它因素干扰,可以先暂时关闭防火墙和SELinux,待成功后再逐一开启

# 关闭防火墙
systemctl stop firewalld.service
# 关闭SELinux
setenforce 0

二、Nginx官方yum源配置

新建repo文件

vim /etc/yum.repos.d/nginx.repo

根据实际版本、架构配置yum源

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

三、安装启动Nginx

运行命令安装Nginx

yum install -y nginx.x86_64

启动Nginx

systemctl start  nginx.service

访问Nginx,若返回"Welcome to nginx!"字眼则安装成功

curl 'http://127.0.0.1'

四、配置Nginx

1、反向代理

根据域名转发端口,如访问a.com转发到内网的127.0.0.1:8080

备份默认配置文件,新建配置文件a.conf

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
touch /etc/nginx/conf.d/a.conf

a.conf文件配置如下

server {
    # 监听80端口
    listen       80;
    # 监听a.com域名
    server_name  a.com;

    # 记录入口日志
    access_log  /var/log/nginx/a.access.log  main;
    # 记录错误日志
    error_log  /var/log/nginx/a.error.log;

    location / {
        # 反向代理
        proxy_pass http://127.0.0.1:8080;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

此时访问a.com会转发到内网127.0.0.1:8080上

五、其它

其它可能会用到的命令

# CentOS7 永久开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

# SELinux 允许通过网络连接到httpd服务(解决'... connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream ...'问题)
setsebool -P httpd_can_network_connect 1