内网部署服务器总结

近期,部署了学校一个服务器,上传了工会的项目

关于不联网服务器部署,再次进行了学习

系统 centos7 

tomcat7.0.20

jdk1.8.0.144

mysql5.7.20

 

一、配置jdk

1.拆卸默认的jdk

[root@localhost ~]$ rpm -qa | grep openjdk | grep -v grep    查找jdk

rpm -e –nodeps **********(jdk名称)  //拆卸

2.进入放置jdk的目录下解压jdk

tar -zxvf jdk-8u144-linux-x64.tar.gz

3.配置环境变量

vi /etc/profile

export JAVA_HOME=/home/HISTgonghui/e/jdk/jdk1.8.0_144

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  

export PATH=$PATH:$JAVA_HOME/bin

4.测试是否成功

java -version

 

报权限不足,使用sudo命令,至此jdk大功告成了。但这只是万里长城第一步

 

二、配置mysql 离线rmp包安装

1.先去官网下载rmp离线安装包,我下载的是  mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

2.进入目录解压

tar  -zxvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar  //如果权限不足,sudo

3.拆卸centos7自带的mariadb

rpm -qa|grep mariadb         //查询出已安装的mariadb
rpm -e --nodeps 文件名      //卸载 , 文件名为使用rpm -qa|grep mariadb 命令查出的所有文件
4.安装mysql
[root@slave5 ~]# rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm 
[root@slave5 ~]# rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
[root@slave5 ~]# rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm 
[root@slave5 ~]# rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
按照顺序安装,因为这几个包存在依赖关系
5.数据库的初始化

为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化

[root@slave5 ~]#  mysqld --initialize --user=mysql

如果是以 mysql 身份运行,则可以去掉 --user 选项。

另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,

而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码

复制代码
[root@slave5 ~]# cat /var/log/mysqld.log 
2017-04-13T10:00:36.294549Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-04-13T10:00:36.848923Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-04-13T10:00:36.961351Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-04-13T10:00:37.153654Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0ae74223-2030-11e7-abde-08002774d86f.
2017-04-13T10:00:37.185725Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-04-13T10:00:37.229524Z 1 [Note] A temporary password is generated for root@localhost: %kWTz,Ml?3Zs
复制代码
这个就是数据库的初始密码

6.启动数据库

现在启动mysql数据库systemctl start mysqld.service

[root@slave5 ~]# systemctl start mysqld.service

可以使用下面两个命令对mysql进行停止,启动和重启:

启动:

使用 service 启动:service mysqld start
使用 mysqld 脚本启动:/etc/inint.d/mysqld start
使用 safe_mysqld 启动:safe_mysqld&

停止:

使用 service 启动:service mysqld stop
使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
mysqladmin shutdown 

重启:

使用 service 启动:service mysqld restart
使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

 
7.

连接数据库

[root@slave5 ~]# mysql -u root -p
Enter password:

密码输入:%kWTz,Ml?3Zs

修改密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

 

8.修改mysql中文乱码问题

修改/etc/mysql/my.cnf

加入这几行

[mysqld]
character_set_server=utf8
[mysql]
default-character-set= utf8
[client]
default-character-set = utf8

 

9.为mysql中root用户设置权限

创建新的用户名和密码
create user username identified by password

给用户分配权限
GRANT privileges ON databasename.tablename TO 'username'@'host'
grant all privileges on *.* to 'username'@'localhost' identified by 'password'

删除权限
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

分配指定库的权限
GRANT ALL PRIVILEGES ON database1.* TO 'username'@'localhost' IDENTIFIED BY 'password';

分配指定操作的权限
GRANT SELECT, UPDATE ON database1.* TO 'username'@'localhost' IDENTIFIED BY 'password';

刷新权限
FLUSH PRIVILEGES

删除用户
DROP USER username@localhost;

设置默认的编码
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示
character_set_server=utf8
init_connect='SET NAMES utf8'

重启mysql
systemctl restart mysqld

更新用户的密码
SET PASSWORD FOR 'username'@'localhost' = PASSWORD("123456");


10.打开centos防火墙,开放3306端[caibo@localhost /]$ firewall-cmd --zone=public --add-port=3306/tcp --permanent

success
[caibo@localhost /]$ firewall-cmd --reload

systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁用
mysql安装后还要允许远程连接,其他服务器才能连接到本地的数据库。

mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:

mysql -u root -p //登录MySQL
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机都可以访问数据库
mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效
mysql> EXIT //退出

也可以通过修改表来实现远程:

mysql -u root -p

mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;

至此,mysql离线安装完毕

三、安装tomcat
1.下载tomcat,我下载的是apache-tomcat-7.0.82
2.修改configuration下面的service-user加入管理员用户
3.开始使用,可以将项目放到root目录下,这样可以省去输入项目名

四、本次装机总结
本次全程离线装机,充分考研了linux功底,也暴露出我自己linux水平的不足
1.当发现外网无法访问3306,8080,80端口时,先看下端口是否开启,再关闭防火墙试试,最后考虑是否是主机安全组策略未开放端口
2.当连接成功,但是无法连接mysql时,Could not create connection to database server
本次解决办法,修改spring配置文件,applicationContent.xml,将其中的数据库{user},{password}直接换成用户名和密码,问题解决


转载于:https://www.cnblogs.com/zsh-blogs/p/7806585.html

<think>嗯,用户问的是内网Nginx服务器部署位置和最佳实践。首先,我需要确定用户可能的需求场景。内网部署通常涉及企业、教育机构或者需要隔离网络的环境,所以安全、性能、维护这些方面都很重要。 根据提供的引用内容,引用2提到内网部署Nginx的一站式解决方案,适合快速搭建。引用4详细给出了Linux下的安装步骤,包括创建目录、上传文件、安装依赖等。引用3展示了Nginx的配置示例,包括反向代理和静态资源处理。而引用1则涉及部署后的操作,比如启动、停止、重启以及上传代码后的处理。 用户的问题核心是部署位置和最佳实践。部署位置应该考虑网络架构中的位置,比如DMZ、核心业务区,或者作为反向代理放在应用服务器前面。最佳实践可能包括目录结构优化、权限管理、配置分离、日志监控、高可用设计、安全加固和版本管理。 需要结合引用中的信息,比如引用4中的目录结构/home/npf/nginx-server,这可以作为一个推荐的部署路径。同时,引用2强调即下即用和简易安装,说明部署应尽量简洁,减少依赖。配置方面,引用3的示例展示了如何设置反向代理和静态资源服务,这些可以作为配置的最佳实践。 还要考虑安全性,比如权限设置,避免使用root运行,这点在引用中没有提到,但属于常见的最佳实践。另外,日志管理,定期备份和监控,引用1提到了查看nginx是否运行成功的命令,可以扩展到日志分析。 可能用户没有明确说出来的需求是希望部署既安全又高效,同时易于维护。因此,回答中需要涵盖这些方面,结合引用内容,给出结构化的建议,比如部署位置的选择、目录规范、配置优化、安全措施等。</think>### 内网Nginx服务器部署位置与最佳实践 #### 一、部署位置选择原则 1. **网络隔离区域** 建议将Nginx部署内网核心业务区与外部访问区之间的**DMZ隔离层**,作为反向代理或负载均衡节点[^2][^3]。 2. **服务拓扑定位** $$ \text{用户请求} \rightarrow \text{防火墙} \rightarrow \text{Nginx反向代理} \rightarrow \text{内网应用服务器} $$ 此架构可实现请求分发和安全隔离[^3]。 3. **物理/虚拟环境** 优先选择容器化部署(如Docker)或专用虚拟机,确保资源隔离。引用[^4]中的`/home/npf/nginx-server`是典型的自定义部署路径。 #### 二、目录结构最佳实践 ```bash /home/nginx/ ├── conf/ # 配置文件(引用[^4]的nginx.conf) ├── logs/ # 访问/错误日志 ├── sbin/ # 可执行文件 ├── dist/ # 前端静态资源(引用[^1]的dist目录) └── certs/ # SSL证书 ``` #### 三、关键配置实践 1. **反向代理配置** ```nginx location /api { proxy_pass http://10.0.1.10:8080; # 指向内网应用服务器 proxy_set_header Host $host; } ``` 如引用[^3]的`/bot`路径代理配置。 2. **静态资源优化** ```nginx location ~* \.(jpg|js|css)$ { expires 7d; # 缓存控制 access_log off; # 减少日志压力 } ``` #### 四、安全增强措施 1. **权限最小化** ```bash chown -R nginx:nginx /home/nginx # 避免root权限运行 ``` 2. **防火墙规则** ```bash iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 仅开放必要端口 ``` #### 五、运维实践 1. **灰度更新流程** ```bash cp new_dist/* /home/nginx/dist/ # 引用[^1]的更新操作 nginx -t && nginx -s reload # 先测试再热加载 ``` 2. **监控指标** - 使用`ps -ef | grep nginx`(引用[^1])监控进程状态 - 通过`logrotate`实现日志自动切割
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值