一、Centos7 安装 nginx
1、Centos7 [检查/安装] nginx依赖
1、检查是否安装了nginx依赖:pcre
pcre-config --version
若没有,则安装
是否有nginx文件夹,若无则新建nginx文件夹,在文件夹进行安装
mkdir nginx && cd nginx wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz tar -xzpvf pcre-8.37.tar.gz cd pcre-8.37 ./configure make && make install pcre-config --version
2、检查是否安装 openssl 、zlib 、 gcc 依赖
安装方法见
2、Centos7 [检查/安装] nginx
是否有nginx文件夹,若无则新建nginx文件夹,在文件夹进行安装
1、下载解压
wget http://nginx.org/download/nginx-1.22.0.tar.gz tar -zxvf nginx-1.22.0.tar.gz
2、配置
cd nginx-1.22.0 ./configure
3、编译
make && make install
4、启动nginx
cd /usr/local/nginx/sbin ./nginx
5、查看nginx是否启动
ps -ef | grep nginx
6、查找nginx占用端口
netstat -anp|grep [id]
7、可以访问,若不能,应该是防火墙端口没开,见下文
3、Linux中如何打开80端口
firewall-cmd --reload
1、查看防火墙状态
systemctl status firewalld
2、开启防火墙
systemctl start firewalld
3、查看开放的端口
firewall-cmd --list-ports
4、打开需要的端口
firewall-cmd --zone=public --add-port=80/tcp --permanent # 这里的permanent配置是永久生效的意思,不配的话重启后该配置就失效
5、重启防火墙
firewall-cmd --reload
6、设置开机启动
systemctl enable firewalld
4、Nginx端口转发配置
1、关闭Nginx
cd /usr/local/nginx/sbin ./nginx -s stop
2、修改nginx.conf文件
cd /usr/local/nginx/conf
将nginx.conf文件保存为nginx.conf.bak,留作备份。
新建文件nginx.conf。然后把刚刚保存文件的里面的内容Copy过来
在里面某个地方添加如下代码
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } # 下面这里是添加的代码 location /api { proxy_pass http://127.0.0.1:8080; } # 意思是只有当访问http://ip/api/........的url时, #将此url转发给http://127.0.0.1:8080, #也就是说,相当于我们访问了http://127.0.0.1:8080/api/........ server { listen 80; server_name api.inlinkhk.com; location /api { proxy_pass http://127.0.0.1:8080; } #访问inlinkhk.com,走第一个server #访问inlinkhk.com,走第二个server
注意:Linux防火墙只需要打开80端口即可,即nginx web服务的端口
http://ip:80/api/........和http://ip/api/.......是等价的,故不写80了
我们做了端口转发
Linux防火墙不用再打开8080端口了
5、Centos7 [检查/安装] MySQL
yum install mysql80-community-release-el7-6.noarch.rpm yum repolist enabled | grep "mysql.*-community.*" yum install mysql-community-server --nogpgcheck 安装MySQL开发包 yum install mysql-devel 如果遇到错误:Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 需要运行下面的命令 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 注意,腾讯云并没有安装开发包 #开启3306端口 firewall-cmd --list-ports firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload firewall-cmd --list-ports 腾讯云只开启了内部3306端口,外部没有开启,若开启请在腾讯云控制台配置 而且没有开启以下远程访问 #开启远程访问 1、登陆mysql mysql -u root -p 2、修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.2.135,这表示只允许局域网的192.168.2.135这个ip远程访问mysql。 mysql> use mysql; mysql> update user set host = '%' where user = 'root'; mysql> select host, user from user; mysql> flush privileges; #启动服务 systemctl start mysqld service mysqld status #修改MySQL密码 grep "password" /var/log/mysqld.log mysql -uroot -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; service mysqld stop service mysqld status systemctl start mysqld
6、 [附录] 其他命令 [仅供参考,提供思路]
一、下面是red hat/CentOs7关闭防火墙的命令! 1:查看防火状态 systemctl status firewalld service iptables status 2:暂时关闭防火墙 systemctl stop firewalld service iptables stop 3:永久关闭防火墙 systemctl disable firewalld chkconfig iptables off 4:重启防火墙 systemctl enable firewalld service iptables restart 5:永久关闭后重启 //暂时还没有试过 chkconfig iptables on 二、firewalld Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。 1.启动防火墙 systemctl start firewalld 2.禁用防火墙 systemctl stop firewalld 3.设置开机启动 systemctl enable firewalld 4.停止并禁用开机启动 sytemctl disable firewalld 5.重启防火墙 firewall-cmd --reload 6.查看状态 systemctl status firewalld或者 firewall-cmd --state 7.查看版本 firewall-cmd --version 8.查看帮助 firewall-cmd --help 9.查看区域信息 firewall-cmd --get-active-zones 10.查看指定接口所属区域信息 firewall-cmd --get-zone-of-interface=eth0 11.拒绝所有包 firewall-cmd --panic-on 12.取消拒绝状态 firewall-cmd --panic-off 13.查看是否拒绝 firewall-cmd --query-panic 14.将接口添加到区域(默认接口都在public) firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙) 15.设置默认接口区域 firewall-cmd --set-default-zone=public(立即生效,无需重启) 16.更新防火墙规则 firewall-cmd --reload或firewall-cmd --complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态 添加规则,第二个需要断开连接,类似重启服务) 17.查看指定区域所有打开的端口 firewall-cmd --zone=public --list-ports 18.在指定区域打开端口(记得重启防火墙) firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent) firewall-cmd --zone=public --add-port=80/tcp --permanent 注:开启后需要重启防火墙才生效 【重启命令】: firewall-cmd --reload 其他常用命令: firewall-cmd --state ##查看防火墙状态,是否是running firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no firewall-cmd --add-service=ftp ##临时开放ftp服务 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口 firewall-cmd --zone=public --list-ports ##查看已开放的端口 iptables -L -n ##查看规则,这个命令是和iptables的相同的 man firewall-cmd 1、开放端口 firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口 firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口 firewall-cmd --reload # 配置立即生效 2、查看防火墙所有开放的端口 firewall-cmd --zone=public --list-ports 3.、关闭防火墙 如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估 systemctl stop firewalld.service 4、查看防火墙状态 firewall-cmd --state 5、查看监听的端口 netstat -lnpt PS:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools 6、检查端口被哪个进程占用 netstat -lnpt |grep 5672 7、查看进程的详细信息 ps 6832 8、中止进程 kill -9 6832 说明: –zone 作用域 –add-port=8080/tcp 添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效